相关疑难解决方法(0)

ios5中的nsjsonserialization?

我一直在读ios 5中有一个现在的库,它允许你序列化和反序列化JSON数据.我不能为我的生活找到我的/ Developer文件夹中的示例或框架.任何人都有运气找到/使用这个?如果是这样,请指出我正确的方向?

json ios5

15
推荐指数
3
解决办法
2万
查看次数

核心数据云同步 - 需要逻辑帮助

我正在为我目前正在开发的Core Data应用程序集思广益的云同步解决方案.我计划在完成后为这个代码开源代码,任何人都可以使用他们的核心数据应用程序,所以社区对这个系统应该如何工作的意见非常感谢:-)这就是我在想的:

服务器端


存储提供商

与所有云同步系统一样,存储是这个难题的主要部分.有很多方法可以解决这个问题.我可以设置我自己的服务器进行存储,或者使用像Amazon S3这样的服务,但由于我现在开始使用0美元资金,此时付费存储解决方案不是一个可行的选择.经过一番思考后,我决定选择Dropbox(一个已经很成熟的云同步应用程序和存储提供商).使用Dropbox的优点是:

  • 它是免费的(对于有限的空间)
  • 除了作为存储服务,它还处理云同步
  • 他们最近发布了一个Objective-C SDK,它可以更容易地在Mac和iPhone应用程序中与它进行交互

如果我决定将来切换到不同的存储提供商,我打算在这个云同步框架中添加"服务",基本上允许任何人创建一个服务类来与他们选择的存储提供商进行交互,然后可以简单地插入框架.

存储结构

这是一个非常困难的部分,因此我需要尽可能多的输入.我一直在考虑这样的结构:

CloudSyncFramework
======> [app name]
==========> devices
=============> (device id)
================> deviceinfo
================> changeset
==========> entities
=============> (entity name)
================> (object id)
Run Code Online (Sandbox Code Playgroud)

这个结构的快速解释:

  • 主"CloudSyncFramework"(名称未定)文件夹将包含使用该框架的每个应用程序的单独文件夹
  • 每个app文件夹都包含一个devices文件夹和一个实体文件夹
  • 所述设备的文件夹将包含每个与该帐户注册设备的文件夹.设备文件夹将根据设备ID命名,使用类似[[UIDevice currentDevice] uniqueIdentifier](在iOS上)或序列号(在Mac OS上)获得.
  • 每个设备文件夹包含两个文件:deviceinfochangeset.deviceinfo包含有关设备的信息(例如操作系统版本,上次同步日期,型号等),变更集文件包含自设备上次同步以来已更改的对象的信息.这两个文件都只是简单的NSDictionaries归档到文件中使用NSKeyedArchiver.
  • 每个Core Data实体在entities文件夹下都有一个子文件夹
  • 在每个实体文件夹下,属于该实体的每个对象都将具有单独的文件.该文件将包含带有键值对的JSON字典.

同步同步

这是我几乎完全无能为力的领域之一.我如何处理同时连接和同步云的2台设备?事情似乎很有可能在这里失去同步,甚至数据损坏.

处理迁移

再次,这里另一个无能为力的地区.我如何处理Core Data托管对象模型的迁移?这里最简单的做法似乎就是清理云数据存储并从已经过迁移过程的设备上传数据的新副本,但这似乎有些冒险,并且可能有更好的方法.

客户端


将NSManagedObjects转换为JSON

将属性转换为JSON并不是一项非常艰巨的任务(它有很多代码可以在Web上浮动).关系是这里的关键问题.在这个 …

cloud macos synchronization core-data ios

14
推荐指数
1
解决办法
5512
查看次数

JSON到持久数据存储(CoreData等)

我的应用程序上的所有数据都是通过JSON通过API提取的.这些数据中很大一部分的性质是它不会经常变化.因此,要制作JSON请求以获取不会发生太大变化的数据列表似乎并不那么吸引人.

我正在寻找最明智的选择,让这个JSON在某种持久性数据存储中保存到iPhone上.显然,当手机无法访问API时,保留数据的一个优点是提供它.

我看了一些 例如让JSON和CoreData进行交互的例子,但似乎他们只描述了将NSManagedObjects转换为JSON.如果我可以将JSON转换为CoreData,那么我唯一的问题就是能够在API中的数据发生变化时更改该数据.

(或者,也许这只是愚蠢的.)

iphone core-data iphone-sdk-3.0

9
推荐指数
1
解决办法
7514
查看次数

核心数据与json

这个问题是对这个问题的跟进.我正在使用http://code.google.com/p/json-framework/上的JSON库.


My Core Data对象模型与其自身具有多对多关系,因此,其子对象具有一个集合.在JSON中,集合通过对象id数组表示.什么都没有异国情调.

当我setValuesForKeysWithDictionary使用解析json字符串得到的对象结构调用托管对象时,我收到此异常:

***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSArrayM minusSet:]:无法识别的选择器发送到实例0x6c7b440'

如果有人可以解释原因,我会全力以赴.我也从未定义的密钥中收到一些异常但这是可以理解的(JSON包含额外的字段)并且完全可管理.

现在我的问题是:

我在这里遗漏了一些东西,因为在另一个问题中,回答的人和OP没有报告任何这个问题.我可以修补它并通过覆盖setValuesForKeysWithDictionary和传递来处理错误操作,当密钥是关系时,但这使得代码不那么通用,我非常喜欢.

json core-data objective-c

7
推荐指数
1
解决办法
1175
查看次数

为iPhone创建JSON商店

我们有大量的应用程序,我们从远程Web服务获取数据作为JSON,然后使用解析器将其转换为Core-Data模型.

对于我们的一个应用程序,我认为我们应该做一些不同的事情.

此应用程序具有只读数据,这些数据易失性的,因此不会在本地缓存很长时间.JSON 与大量嵌套的"对象" 密切相关.文档通常包含不超过20个顶级项目,但可能高达100K.

我认为我不想用100个实体创建Core Data模型,然后使用映射器将JSON导入其中.这看起来像是一首歌和舞蹈.我想我只想简单地将JSON保存在某个地方,并且能够查询它.如果它在iPhone上运行,MongoDB会很好.

iPhone上是否有支持查询的JSON文档存储?

或者,我可以使用一些JSON解析器将数据转换为某种持久性NSDictionary并使用谓词进行查询吗?

或者也许使用SQLite作为在JSON结构上手动创建索引的BLOB存储?

或者,我应该停止抱怨,并使用核心数据?:)

帮助赞赏.

iphone persistence json store core-data

7
推荐指数
1
解决办法
6485
查看次数

导出核心数据实体的最佳做法

我需要导出一些具有关系的实体,以便在其他iOS设备中导入它.例如:

A.relationship1 <------>> B.relationship1 (one to many)
B.relationship2 <-------> C.relationship1 (one to one)
Run Code Online (Sandbox Code Playgroud)

有没有办法序列化/反序列化(或其他方法)来"轻松"导出/导入核心数据模型的一个片段(由获取的结果控制器获取的对象及其关系?通过序列化所有数据包(NSData或其他东西) ,反序列化并将其插入上下文(导入).

请指出我正确的方向.提前致谢.

entity export core-data objective-c ios

6
推荐指数
1
解决办法
5936
查看次数

使用setValue和数据时,如何在Core Data中正确设置关系

假设我有两个对象:文章类别,两者之间有很多关系.为了这个例子,所有相关的类别都已添加到数据存储中.循环浏览包含文章编辑的数据时,需要保存类别关系信息.

我打算在类中使用该-setValue方法Article来设置如下的关系:

- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
    if([key isEqualToString:@"categories"]){
        NSLog(@"trying to set categories...");
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是value不是a Category,它只是一个包含类别标题的字符串(或字符串数​​组).我当然可以在这个方法中为每个类别进行查找并分配它,但是在一次处理大量文章时这似乎效率低下.另一种选择是填充所有可能类别的数组并只过滤,但我的问题是存储该数组的位置?它应该是一个类方法Article吗?有没有办法将额外的数据传递给-setValue方法?是否有另一个更好的选择来设定我没想到的关系?

谢谢你的帮助.

iphone core-data objective-c

5
推荐指数
1
解决办法
3343
查看次数

带关系的核心数据的JSON

根据Ray Wenderlich的新教程,我能够获取JSON数据并将其存储到Core数据中.我很难理解如何使用Core Data中的关系来做到这一点.

这是我的数据模型:

在此输入图像描述

这是我的JSON:

{
    "results": [
        {
        "name": "Trivia 1",
        "objectId": "1000",
        "createdAt": "2012-08-31 18:02:52.249 +0000",
        "updatedAt": "2012-08-31 18:02:52.249 +0000",
        "questions": [
            {
                "text": "Question 1"
            },
            {
                "text": "Question 2"
            },
            {
                "text": "Question 3"
            }
         ]
       }
     ]
}
Run Code Online (Sandbox Code Playgroud)

最后,我在这里设置了managedObject的值:

    //Sets values for ManagedObject, also checks type
    - (void)setValue:(id)value forKey:(NSString *)key forManagedObject:(NSManagedObject *)managedObject {

        NSLog(@"TYPE: %@", [value class]);

        //If managedObject key is "createdAt" or "updatedAt" format the date string to an nsdate
        if ([key …
Run Code Online (Sandbox Code Playgroud)

iphone core-data one-to-many relationships ios

4
推荐指数
1
解决办法
3884
查看次数

使用GameKit在iPhone之间传输CoreData数据

我有一个应用程序,我希望在两个iPhone之间交换通过Core Data管理的信息.

有没有人尝试过这个,如果有的话,这被认为是最好的方法(即人们在文件中使用某些中间格式,如XML或JSON,或者可以直接传输对象).

如果问题在范围内显得过于夸张,我表示道歉,但我正处于需要决定转移方法的阶段,而且我没有使用此API的经验.

对于使用GameKit在设备之间传输对象的任何代码示例或任何此类示例的链接,我将非常感激.

iphone core-data objective-c transfer gamekit

3
推荐指数
1
解决办法
2246
查看次数

编辑模型后缺少映射模型

我正在手动进行核心数据迁移,并且继续遇到可可错误134140:NSMigrationMissingMappingModelError。我注意到,只要对模型进行任何更改,即使将属性标记为可选,都可能发生这种情况。到目前为止,发生这种情况时,我发现的唯一解决方案是删除映射模型并创建新的映射模型。有没有更好,更乏味的解决方案?

migration xcode core-data core-data-migration ios

2
推荐指数
1
解决办法
1103
查看次数

iPhone,核心数据和JSON

我有一个带有API的网站,它使用JSON发布信息.我可以很好地访问此API,但我真的希望使用Core Data将信息存储在iPhone应用程序中.有没有办法将持久存储挂钩到JSON API,所以不必使用某种算法让它们保持同步,我只能使用网站作为Core Data的后端.

我希望这很清楚.

iphone json core-data

1
推荐指数
1
解决办法
2750
查看次数