我有一个 iOS 应用程序,我正在尝试将其核心数据模型迁移到新版本。
在 Core Data 模型的 v2 中有一个新字段(photoFilename),可以使用 v1 字段(dateInSeconds)并附加“.jpg”为现有条目生成它的值。
例如
version 1 | version 2
field data | field data
========================================|==============================
dateInSeconds (Integer 32) 401760341 | dateInSeconds (Integer 32) 401760341
| photoFilename (String) 401760341.jpg
我已经创建了一个核心数据映射模型(部分如下所示),并且数据库似乎要迁移。不幸的是,创建的 photoFilename 在“.jpg”前面没有给出正确的数字。例如,它可能返回 '275263312.jpg' 而不是 '401760341.jpg'
现在诚然,我以前从未使用过这样的映射,而且这里的 Apple 文档似乎非常有限。
在其他地方进行研究,似乎“值表达式”是 NSExpression 的一种,可以复制用于测试目的。
NSExpression *expr = [NSExpression expressionWithFormat:@"FUNCTION('', 'stringByAppendingFormat:', '%d.jpg', 401760341)"];
id result = [expr expressionValueWithObject:nil context:nil];
NSLog(@"result: %@", result);
但是,这与“.jpg”前面的错误数字类似。
有人可以指出为什么获得的评估结果不是我的预期结果吗?