Ответ 1
NSTaggedPointerString уже является NSString, это просто подкласс. Вы можете использовать его везде, где вы можете использовать NSString, без преобразования.
Я назвал интерфейс Baidu для проверки id Number, однако значение Sex возвращается с sex = M, без "вокруг" M в JSON, когда я использую NSString в модуле для его сохранения, а затем печатаю имя класса это сексуальное свойство, оно напечатано как NSTaggedPointerString, я сомневаюсь, как его преобразовать в String, чтобы использовать его. У кого-нибудь есть хорошие идеи?
NSTaggedPointerString уже является NSString, это просто подкласс. Вы можете использовать его везде, где вы можете использовать NSString, без преобразования.
Я столкнулся с местами, где он не может использоваться как строка, например при создании NSDictionary. В этих случаях используйте stringWithString:
:
NSString* <# myNSString #> = [NSString stringWithString:<# myNSTaggegedString #>];
У меня была такая же проблема несколько раз. Казалось бы, что вывод типа для NSDictionary не является точной наукой. То, что я делаю, конкретно спрашивает, реагирует ли объект на конкретный метод. Например, если я зацикливаюсь на парсинге некоторого JSON, и я пытаюсь получить доступ к значению типа NSString
:
NSString * string;
if ([[dict objectForKey:@"value"] respondsToSelector:@selector(stringValue)]) {
string = [[dict objectForKey:@"value"] stringValue];
}
else {
string = [NSString stringWithString:[dict objectForKey:@"value"]];
}
documentFile.documentRevision = string;
В моем случае son { "count": "123" } У меня возникла ошибка. Решено:
// Data was created, we leave it to you to display all of those tall tales!
// NSLog(@«data: %@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
NSDictionary * json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
if ([json isKindOfClass:[NSDictionary class]]){ //Added instrospection as suggested in comment.
NSArray *dicArray = json[@"count"];
NSLog(@"=:%@", dicArray);
}