在 App-Group 文件夹中创建领域文件在 WatchOS(WatchKit 扩展)下不起作用
Posted
技术标签:
【中文标题】在 App-Group 文件夹中创建领域文件在 WatchOS(WatchKit 扩展)下不起作用【英文标题】:creation of realm file in App-Group Folder does not work under WatchOS (WatchKit Extension) 【发布时间】:2015-09-30 10:50:52 【问题描述】:以下代码适用于 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.) call 可以抛出,但没有标记'try',错误不处理
任何帮助表示赞赏!
【问题讨论】:
【参考方案1】:要解决您的第一个问题,您需要强制转换:
directory.path as NSString
因为路径返回为 String
,而在 Swift 中不提供 stringByAppendingPathComponent
方法。
其次,Swift 2.0 有新的错误处理,所以可以抛出错误的方法被标记为throws
。然后,这些方法要求您在调用之前添加try
。请参阅 Apple 的文档:Swift Error Handling
如果您知道该路径可以保证工作,则要禁用错误处理,您可以简单地编写:
playerRealm = try! Realm(path: realmPath)
【讨论】:
以上是关于在 App-Group 文件夹中创建领域文件在 WatchOS(WatchKit 扩展)下不起作用的主要内容,如果未能解决你的问题,请参考以下文章