将NSTaggedPointerString转换为NSString

时间:2015-10-19 05:44:56

标签: objective-c json afnetworking-2

我已经调用了百度的界面来检查ID号,但当我在sex = M中使用M时,性别的值与NSString一起返回,在sex周围没有“”用于存储它的模块然后打印此NSTaggedPointerString属性的类名,它打印为function line(pos_x, pos_y, length, width, color, num) { this = document.createElement('div'); this.style.left = pos_x + "%"; this.style.top = pos_y + "%"; this.style.length = length + "%"; this.style.width = width + "%"; this.style.backgroundColor = color; this.id = "line" + num; document.appendChild(this); } var line1 = line(10, 0, 100, 100, #2ecc71, 1);,我怀疑如何将其转换为String以使用它。任何人都有好主意吗?

5 个答案:

答案 0 :(得分:33)

NSTaggedPointerString已经是NSString,它只是一个子类。您可以在任何可以使用NSString的地方使用它,而无需转换。

答案 1 :(得分:10)

我遇到过无法用作字符串的地方,例如创建NSDictionary时。在这些情况下,请使用stringWithString:

NSString* <# myNSString #> = [NSString stringWithString:<# myNSTaggegedString #>];

答案 2 :(得分:2)

我多次遇到同样的问题。似乎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;

答案 3 :(得分:0)

在我的情况下,儿子{“伯爵”:“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);

 }

答案 4 :(得分:0)

对于Swift 3或4

String(stringInterpolationSegment: taggedPointerString)