铸造在目标c

Jas*_*son 2 iphone casting objective-c nsstring

我有一个字典对象,我正在从中提取数据.该字段应该是一个字符串字段,但有时它包含的所有字符都是一个数字.我使用以下信息获取信息:

NSString *post = [[temp objectAtIndex:i] valueForKey:@"POSTDESCRIPTION"];
Run Code Online (Sandbox Code Playgroud)

所以它进入了一个字符串对象.但是,当我尝试通过以下方式将其分配给单元格的文本时:

cell.textLabel.text = post;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

'NSInvalidArgumentException', reason: '*** -[NSDecimalNumber isEqualToString:]: unrecognized selector sent to instance 0x4106a80'
2009-10-20 13:33:46.563
Run Code Online (Sandbox Code Playgroud)

我尝试用以下方法进行投射无效:

NSString *post = [[[temp objectAtIndex:i] valueForKey:@"POSTDESCRIPTION"] stringValue];
NSString *post = (NSString *)[[temp objectAtIndex:i] valueForKey:@"POSTDESCRIPTION"];
cell.textLabel.text = [post stringValue];
cell.textLabel.text = (NSSting *)post;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Jas*_*son 8

你的字典不包含NSString.如果你想要对象的字符串表示,你可以调用对象的description选择器,例如:

NSString *post = [[[temp objectAtIndex:i] valueForKey:@"POSTDESCRIPTION"] description];
Run Code Online (Sandbox Code Playgroud)

  • 在Objective-C中肯定有对象的转换.你不能将一个物体投射到它不是的东西上.并且NSNumber不是NNSString. (3认同)