3

我最近决定迁移到 StackMob(来自 Parse)。我已经设法设置核心数据,并且可以读取和写入 StackMob 数据存储。

到目前为止,StackMob 向用户提供了一个项目列表。如果用户决定在我的应用程序上使用某个项目,我希望该项目可以离线使用,这样他就可以使用它而无需连接到 stackmob。

我正在考虑创建一个本地核心数据并复制用户在那里选择的项目。我的第一个问题是我是否可以对 Core Data(stackmob 和本地)使用相同的对象。如果这是正确的做法。

4

1 回答 1

2

最新的 sdk 包括对核心数据缓存的支持。详细信息在这篇博文中。

缓存系统默认关闭。要打开它,只需在您的 App Delegate 文件中将 SM_CACHE_ENABLED 标志设置为 YES,然后再初始化 Core Data 存储。该标志在 SMCoreDataStore.h 中声明。

它还包括有关如何控制缓存的代码示例...

SMClient *client = [[SMClient alloc] initWithAPIVersion:@"0" publicKey:@"XXXX"];
SMCoreDataStore *coreDataStore = [client coreDataStoreWithManagedObjectModel:myModel];
[client.session.networkMonitor setNetworkStatusChangeBlockWithCachePolicyReturn:^SMCachePolicy(SMNetworkStatus status) {
        if (status == Reachable) {
            return SMCachePolicyTryNetworkElseCache;
        } else {
            return SMCachePolicyTryCacheOnly;
        }
}];
于 2013-01-29T21:24:55.157 回答