我已经设法让我现有的核心数据应用程序与iCloud一起使用.经过几天的学习,实际上非常简单.似乎有三件事是必不可少的:
添加权利文件(在最近的Xcode中,可以通过选择目标,选择"摘要窗格",向下滚动,选中启用权利来完成)
在我的情况下,添加持久存储时添加正确的选项
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
// other options
@"<arbitrary name>", NSPersistentStoreUbiquitousContentNameKey,
iCloudURL, NSPersistentStoreUbiquitousContentURLKey,
nil]
Run Code Online (Sandbox Code Playgroud)
哪里
NSURL * iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
Run Code Online (Sandbox Code Playgroud)这里的"nil"表示使用了Entitlements.plist文件中的信息.
实际上,目前我不确定这最后一步对于开发至关重要 - 我已经启用了另一个没有这最后一步的应用程序,它似乎工作.
无论如何,我注意到不同iDevices上同一应用程序的两个现有核心数据库会将新条目同步到核心数据堆栈,但不会自动同步现有记录.
将数据从设备A同步到B的一种方法是删除B上的现有核心数据数据库,然后在B上重新启动应用程序.但是,这不是合适的合并.
在升级应用程序以使用iCloud支持时,是否有人知道在不同应用程序上合并两个现有核心数据数据库的方法,即使用上述选项以及所有这些?
谢谢
有没有一种方法可以在R中的多维数组中优雅地指定切片,从而事先不知道维数?
例如,对于5维数组,可以使用完成切出最后一个维度
fourdimslice <- fivedimarray[,,,,1]
Run Code Online (Sandbox Code Playgroud)
但是我想用任意尺寸来编码,比如说
slice <- arbitrarydimarray(dim=5, index=1)
Run Code Online (Sandbox Code Playgroud)
我无法理解这是否do.call('[', ...)是一种方法.我也尝试过命名尺寸,但a[fifth=1]不会按照我想要的方式进行解释.
我认为功能就像apply()需要做类似的事情.