将Core Data对象导出到NSDictionary vs NSArray

时间:2012-10-30 22:27:38

标签: core-data nsmutablearray nsarray nsdictionary

我有一个由不同类型组成的核心数据对象NSString,Float,NSDATA,....

  <Shoplog: 0x9c78d20> (entity: Shoplog; id: 0x9c77050 <x-coredata://828289C5-E1B8-48A6-B2A0-F68B7DF21F2E/Shoplog/p5> ; data: {
    categoryname = Ines;
    comments = nil;
    date = nil;
    email = "iloveyou@gmail.com";
    image = <ffd8ffe0 00104a46 49460001 01000001 00010000 ffe10058 45786966 00004d4d 002a0000 00080002 01120003 00000001 0001>;
    phone = 800;
    price = 9988;
    shop = "";
    websiteurl = "http://www.google.com";
})

问题是我想将此NSManaged对象导出到NSArray或NSDictionary中,以便将其写入文件,以便通过邮件将其发送给另一个用户,&amp;从他的应用程序打开它。

所以每当我试图使用此代码时

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Shoplog.slog"];
[savedData writeToFile:filePath atomically:YES];

它给了我一个非常小的文件135bytes,无论选择的NSManagedObject有多大,我得到相同的大小。

我需要帮助来了解发生了什么问题? 我想1解决方案: 1-使用KVC方法将NsManagedObject传输到NSMutableArray

虽然我仍然相信这个问题有一个更聪明的解决方案,所以如果有人可以帮助我会感激。

谢谢

1 个答案:

答案 0 :(得分:4)

我在以下链接中有我的答案,它很容易实现,只需按照步骤操作即可 Serializing (Archiving/Unarchiving) an NSManagedObject Graph