0

我在服务器上有一个 sql 表。我想将整个表格内容获取到 IOS sqllite 数据库。除 SQL Server Image 数据类型外,一切正常。我调用 WCF Web 服务以将表数据获取到 IOS 并将 SQLLite 数据库中的数据保存到与我的 sql server 表具有相同列的实体中。

我在 Sql Server 中使用 Image 类型,但在 IOS 上,我在创建实体时对图像使用了二进制数据类型。我使用以下代码将数据保存到 sqllite。我确保我正确收到了数据。未设置接收到的 Sql Image 数据以某种方式调用 tbl setValue:forKey。当我检查它是零。有人知道我做错了什么吗?

(NSManagedObject *) tblRow \\ this is my dictionary and when i call save, its contents are written to sqllite.

[tblRow setValue:(NSData *)[rowData GetValue:(NSString *)[ keys objectAtIndex:i]] forKey:[(NSString *) [keys objectAtIndex:i] lowerCaseString]];

[[Globals GetContext] save:&error]; // This save the data to sqllite
4

2 回答 2

0

我不是编写向我发送图像数据的 WCF 服务的人,我了解到该服务将 base 64 编码应用于数据并将 base 64 字符串设置为 NSData 对象并尝试保存它失败了。解码数据后,一切正常。

于 2013-07-04T02:40:08.917 回答
0

理论上你没有做错任何事情,所以在你传递之前尝试获取键和值setValue:forKey:,并检查它们是否已经存在。

NSString *key = [keys objectAtIndex:i];
NSData *data = [rowData GetValue:key];

但是,我建议直接设置属性而不是setValue:forKey:在这种情况下使用,此外,最好将图像保存在磁盘上,并将各自的路径保存在 CoreData 上(假设您根据示例中的类和方法使用它代码)。

于 2013-07-02T22:08:49.050 回答