我正在使用Swift尝试在多个Apple设备上共享字符串。它是所有设备(iPad,iPhone和Mac)上的相同应用程序,但我试图获得它,所以我可以在所有设备上有字符串并在更改时更新它,所以基本上'同步'字符串。
我现在尝试使用NSUserDefaults并将其保存到列表中,然后在应用程序启动时检索它,但是我遇到了一些麻烦,因为我关注的代码是在Objective-c而且我是不善于翻译代码。我已经将代码放在下面,以便您可以翻译它。
代码:
//On one device:
NSDictionary *dict = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
//on the other:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
for (NSString *key in dictionaryRepresentation.allKeys) {
id ob = dictionaryRepresentation[key];
[defaults setObject:ob forKey:key];
}
如果您无法翻译它,您是否有更好的方法可以使用Swift免费在多个设备上同步字符串?
提前致谢!
答案 0 :(得分:1)
NSUserDefaults
不会跨设备共享。它是应用程序的每个副本的本地。您可以在@bobnoble的评论中使用NSUbiquitousKeyValueStore
和iCloud,但这可能需要10秒到几分钟才能传播。
如果您希望它速度快,我建议您在应用之间建立BLE(蓝牙低功耗)链接。发送设备将发送BLE"广告"并且接收设备将监听该广告。这会很快,但仅限于BLE范围。
请注意,编写BLE是非常低级的东西。
答案 1 :(得分:0)
嗯,这段代码的翻译如下:
//On one device:
let dict = NSUserDefaults.standardUserDefaults().dictionaryRepresentation()
//on the other:
let defaults = NSUserDefaults.standardUserDefaults()
for key : NSString in dictionaryRepresentation.allKeys {
let ob = dictionaryRepresentation[key]
defaults.setObject(ob, forKey:key)
}