关于 ios:难以从 Core Data 加载整数 | 珊瑚贝

Difficulty loading integer from Core Data


我有一个整数存储在我的 core data 中并设置为类型 integer 32。我可以很好地读写 core data 并且文本和日期等一切都很好。但我似乎对整数值有困难。

实体是 Status,我正在尝试检索 lastMessageDate 和 lastMessageID 字段。在这个实体中只会有一个记录。日期检索正常,但整数不检索。

1
2
3
4
5
6
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@”Status”];
NSError *error = nil;
self.updateStatus = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

NSDate *lastSavedMessageDate = [[self.updateStatus objectAtIndex:0] lastMessageDate];
NSInteger lastSavedMessageID = [[self.updateStatus objectAtIndex:0] lastMessageID];

检索到的不是实际存储的数字。我想这可能与指针有关,但无论我尝试什么,我似乎都无法获得实际存储的数字。

一个相关的问题是当我试图保存到这个字段时。日期保存得很好,但包括整数保存我得到一个错误:

1
2
3
4
5
6
7
for (NSManagedObject *updatedRecord in [self updateStatus])
{
[updatedRecord setValue:now forKey:@”lastMessageDate”];
[updatedRecord setValue:newMessageID forKey:@”lastMessageID”];
}
NSError *errorUpdate;
[context save:&errorUpdate];

Implicit conversion of ‘NSInteger’ (aka ‘int’) to ‘id’ is disallowed
with ARC

有什么建议吗?

  • 我会使用 NSNumber stackoverflow.com/questions/9886160/…对于整数基本相同
  • lastMessageID 将作为 NSNumber 返回,尝试 [[[self.updateStatus objectAtIndex:0] lastMessageID] integerValue];
  • NSNumber 应该解决你的问题,我认为 NSInterger 是一个 Interger 64,而不是 32:developer.apple.com/library/mac/documentation/Cocoa/Conceptu??al/…
  • @JamesP – 完美……成功了谢谢


正如其他人所说,您需要使用 NSNumber 这样做的原因是Core Data 只处理整数是原语的对象。当您在 Core Data 实体中填充任何形式的数字值时,它必须是 NSNumber ,使用新的自动装箱功能非常简单。

将 NSNumber 转换为原语就像在对象上调用正确的方法一样简单,在这种情况下它将是 -intValue.


来源:https://www.codenong.com/32187004/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_8997.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?