我正在将我的iOS 6应用程序转换为可在iOS 7中使用。它使用CoreData,在我的模型中,我定义了一些实体和属性。属性之一是deliveryid,类型设置为Integer 32。
我为核心数据实体创建了NSManagedObject类,这些类以前在带有iOS 6的XCode 5中运行良好。
当我将这些NSManagedObject类带到目标iOS 7时,出现错误“将整数值“NSNumber *”发送到“long”类型的参数的指向整数转换的不兼容指针”。
对于deliveryid属性,在.h文件中定义如下:
@property (nonatomic, strong) NSNumber * deliveryid;
然后在.m文件中,我有:
NSString *strDeliveryID = [[NSNumber numberWithLong:self.deliveryid] stringValue];
我尝试将其转换为字符串值。以前在编译时不会产生任何警告或问题。
我无法解决iOS 7出现此问题的原因。有人可以帮忙吗?
最佳答案
self.deliveryid
已经是一个NSNumber*
。没有理由从中创建新的NSNumber*
。用这个:
NSString *strDeliveryID = self.deliveryid.stringValue;
另一个选择如下,这很愚蠢和令人困惑:
NSString *strDeliveryID = @(self.deliveryid.longValue).stringValue;
关于ios - 向整数转换发送不兼容的指针,将“NSNumber *”发送到“long”类型的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19621881/