我正在将我的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上。有人可以帮忙吗?
答案 0 :(得分:3)
self.deliveryid
已经是NSNumber*
。没有理由从中创建新的NSNumber*
。使用此:
NSString *strDeliveryID = self.deliveryid.stringValue;
另一个选择是以下,这是愚蠢和混乱:
NSString *strDeliveryID = @(self.deliveryid.longValue).stringValue;
答案 1 :(得分:2)
您可以尝试:
NSString *strDeliveryID = [NSString stringWithFormat:@"%@",deliveryid];