在App-Group文件夹中创建领域文件在WatchOS(WatchKit扩展)下不起作用

时间:2015-09-30 10:50:52

标签: ios swift watchkit realm

以下代码适用于iOS-8.x / Swift-1.2 / WatchKit-1.0

    // create Realm_DB-File in shared App-Groups Folder
    let directory: NSURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier(AppConstants.APP_GROUP_IDENTIFIER_KEY)!
    let realmPath = directory.path!.stringByAppendingPathComponent(AppConstants.REALM_FILENAME_KEY)
    playerRealm = Realm.init(path: realmPath)

但它在iOS-9.0.1 / Swift-2.0 / WatchOS-2.0

下无法正常工作

这两条错误消息是:

1。)' stringByAppendingPatchComponent'不可用:改为使用NSURL上的URLByAppendingPathComponent

2。)电话可以投掷,但没有标记为'尝试'并且没有处理错误

enter image description here

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

要解决您的第一个问题,您需要执行:

directory.path as NSString

因为路径以String的形式返回,而在Swift中它并不提供stringByAppendingPathComponent方法。

其次,Swift 2.0有新的错误处理,因此可以抛出错误的方法标记为throws。然后,这些方法要求您在调用之前添加try。请参阅Apple的文档:Swift Error Handling

如果你知道路径可以保证工作,那么要禁用错误处理,你可以简单地写一下:

playerRealm = try! Realm(path: realmPath)