NSNumber * 从 CoreData 到 NSString *

NSNumber * to NSString * from CoreData

我目前有 NSArray 个来自 CoreData 的对象 - 其中一个属性(名为 identifier)是一个 NSNumber。我正在我的代码中进行一些比较,需要将此 NSNumber 转换为 NSString

我已经可以使用它了,但是我想知道这两段代码之间的区别是什么:

NSNumber * arrayValueNum = [coreArray[i] identifier];
NSString * arrayValue = [arrayValueNum stringValue];

NSString * test = [[coreArray[i] identifier] stringValue];

出于某种原因,第二个片段无法编译,而第一个片段可以。

错误:

no visible @interface for 'NSString' declares the selector 'stringValue'

除了 NSNumber * 值在大括号中而不是在它自己的变量中之外,它们不一样吗?

您可以像这样使用 stringWithFormat 直接为 NSString 变量赋值。

NSString *test = [NSString stringWithFormat:@"%@",[coreArray[i] identifier]];