StackMob 本地核心数据存储

Posted

技术标签:

【中文标题】StackMob 本地核心数据存储【英文标题】:StackMob local core data storage 【发布时间】:2013-01-29 08:13:57 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

最新的 sdk 包括对核心数据缓存的支持。详情在此blog post。

缓存系统默认关闭。要打开它,只需在您的 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;
        
];

【讨论】:

这个参数(SMNetworkStatus 状态)是如何传入区块的?或者“SMNetworkStatus status”是一种全局实例?谢谢。 通过 sdk,不知道如何。但是你知道stackmob被PayPal收购后就被关闭了吗? 是的,我这周才知道,2014年5月11日大哥把它噎死了。由于没有地方下载它的SDK教程,我搜索了***,在这里找到了你的回复。我仍然想知道 .m 文件中隐藏的“@interface SMNetworkReachability : AFHTTPClient”中是否有 iVAR“SMNetworkStatus 状态”,因为这个“SMNetworkReachability”类有一个“- (SMNetworkStatus)currentNetworkStatus;” public 方法,真的很像改款后的Getter。感谢您的回复! 我很确定它使用了标准的 Apple 可达性代码...developer.apple.com/library/ios/samplecode/Reachability/… 我必须同意。很可能是“SCNetworkReachabilityCreateWithAddress”完成了这项工作。谢谢大卫!

以上是关于StackMob 本地核心数据存储的主要内容,如果未能解决你的问题,请参考以下文章

如何将 PHAsset 存储到核心数据中

将 JSON 对象存储到核心数据中

如何创建登录条件和核心数据表值不能存储两次

将种子数据库与 Parse 本地数据存储集成

Kubernetes核心概念之Volume存储数据卷详解

我可以从服务器检索数据并将其存储在核心数据中吗?