以下代码适用于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。)电话可以投掷,但没有标记为'尝试'并且没有处理错误
任何帮助表示赞赏!
答案 0 :(得分:2)
要解决您的第一个问题,您需要执行:
directory.path as NSString
因为路径以String
的形式返回,而在Swift中它并不提供stringByAppendingPathComponent
方法。
其次,Swift 2.0有新的错误处理,因此可以抛出错误的方法标记为throws
。然后,这些方法要求您在调用之前添加try
。请参阅Apple的文档:Swift Error Handling
如果你知道路径可以保证工作,那么要禁用错误处理,你可以简单地写一下:
playerRealm = try! Realm(path: realmPath)