核心数据如何将NSNumber更改为NSString?

时间:2012-01-26 13:46:51

标签: iphone core-data

我正在为我的应用程序使用Core Data,我有一个模型预订,并且我有一个facebook_event_id,起初我有一个整数64,但问题是这可能是短的,我希望它改为NSString(无论如何我把它作为JSON字符串从Facebook获得)。

我现在已经做了以下事情:

  • 编辑 - >添加模型版本并将其基于旧版本
  • 重建我的子类
  • 使用NSMigratePersistentStoresAutomaticallyOption并将NSInferMappingModelAutomaticallyOption设置为YES
  • 添加此dict

当我测试它在Integer 16和64之间进行更改时,一切正常,但是当我尝试从Integer 64和String更改时,它给了我一个错误:

Can't find or automatically infer mapping model for migration

所以我添加了一个新的映射模型,我希望在ReservationRoReservation | facebook_event_id | $source.facebook_event_id

中修复它

我认为应该使用$source.facebook_event_id做一些事情来转换它,但我不知道要写什么来让它工作。一个人不应该使用普通的Objective-C而是NSExpression,但在那里它没有解释如何将NSNumber转换为NSString。

2 个答案:

答案 0 :(得分:6)

我想你想要:

FUNCTION($source.facebook_event_id, "stringValue")

将使用当前在您的facebook_event_id属性中的NSNumber,并将stringValue消息发送给它。

答案 1 :(得分:1)

怎么样:

NSString *convertedString = [NSNumber stringValue];