[NSCFString stringValue]:发送到实例的无法识别的选择器

Fin*_*ist 14 iphone objective-c

我正在使用此代码查询核心数据并返回key的值,我存储的值如下:

 NSString *newName= @"test"; 
 [newShot setValue:newName forKey:@"shotNumber"]; 
Run Code Online (Sandbox Code Playgroud)

我这样查询:

NSManagedObject *mo = [items objectAtIndex:0];  // assuming that array is not empty
  NSString *value = [[mo valueForKey:@"shotNumber"] stringValue];
  NSLog(@"Value : %@",value);
Run Code Online (Sandbox Code Playgroud)

我虽然崩溃了这条消息:

[NSCFString stringValue]:发送到实例的无法识别的选择器,

有谁知道那将来自哪里?

ken*_*ytm 36

newName(@"test")已经是一个NSString.无需调用-stringValue将其转换为字符串.

NSString *value = [mo valueForKey:@"shotNumber"];
Run Code Online (Sandbox Code Playgroud)


joh*_*nyb 5

我经常为NSString添加一个类别来处理这个问题:

@interface NSString(JB)
-(NSString *) stringValue;
@end

@implementation NSString(JB)
  -(NSString *) stringValue {
  return self;
}
@end
Run Code Online (Sandbox Code Playgroud)

您可以向要以此方式响应的其他类添加类似的类别.