1

我正在将我的 iOS 6 应用程序转换为在 iOS 7 中工作。它使用 CoreData,在我的模型中我定义了一些实体和属性。其中一个属性是deliveryid,类型设置为整数32。

我为我的核心数据实体创建了 NSManagedObject 类,这些类以前在 XCode 5 和 iOS 6 中运行良好。

当我将这些 NSManagedObject 类带到目标 iOS 7 时,我收到错误“指向整数转换的不兼容指针,将'NSNumber *'发送到'long'类型的参数”。

对于 deliveryid 属性,它在 .h 文件中定义如下:

@property (nonatomic, strong) NSNumber * deliveryid;

然后在 .m 文件中我有:

NSString *strDeliveryID = [[NSNumber numberWithLong:self.deliveryid] stringValue];

我尝试转换为字符串值。这以前在编译时没有产生任何警告或问题。

我无法解决为什么 iOS 7 会出现此问题。有人可以帮忙吗?

4

2 回答 2

4

self.deliveryid已经是一个NSNumber*. 没有理由从中创造一个新NSNumber*的。用这个:

NSString *strDeliveryID = self.deliveryid.stringValue;

另一种选择是以下,这是愚蠢和令人困惑的:

NSString *strDeliveryID = @(self.deliveryid.longValue).stringValue;
于 2013-10-27T18:40:53.187 回答
2

你可以试试 :

NSString *strDeliveryID = [NSString stringWithFormat:@"%@",deliveryid];
于 2013-10-27T19:41:07.433 回答