将 NSTaggedPointerString 转换为 NSString
convert NSTaggedPointerString to NSString
我调用了百度的一个接口来查看id Number,但是当我使用JSON中M
两边没有""时,Sex返回的值是sex = M
,没有"" NSString
在模块中存储它然后打印这个 sex
属性 的 class 名称,它打印为 NSTaggedPointerString
,我怀疑如何将它转换为字符串来使用它。大家有什么好主意吗?
NSTaggedPointerString
已经是一个 NSString
,它只是一个子类。您可以在任何可以使用 NSString
的地方使用它,无需转换。
就我而言,儿子 {"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);
}
我遇到过 NSTaggedPointerString
不能用作 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;
对于 Swift 3 或 4
String(stringInterpolationSegment: taggedPointerString)
我调用了百度的一个接口来查看id Number,但是当我使用JSON中M
两边没有""时,Sex返回的值是sex = M
,没有"" NSString
在模块中存储它然后打印这个 sex
属性 的 class 名称,它打印为 NSTaggedPointerString
,我怀疑如何将它转换为字符串来使用它。大家有什么好主意吗?
NSTaggedPointerString
已经是一个 NSString
,它只是一个子类。您可以在任何可以使用 NSString
的地方使用它,无需转换。
就我而言,儿子 {"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);
}
我遇到过 NSTaggedPointerString
不能用作 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;
对于 Swift 3 或 4
String(stringInterpolationSegment: taggedPointerString)