在Today扩展中加载文件

时间:2014-07-15 06:13:40

标签: ios ios8 today-extension nsfilecoordinator

我一直在尝试创建一个Today扩展,需要访问文档目录中的.plist文件。我已经为应用和扩展程序设置了App组。

虽然我看过NSUserDefaults的示例,但我找不到任何访问文件的内容。

我尝试访问这样的文件(在应用程序本身中工作)

let paths = NSSearchPathForDirectoriesInDomains(
        .DocumentDirectory, .UserDomainMask, true)
let documentsDirectory = paths[0] as String
let filePath = "\(documentsDirectory)/config.plist"

if NSFileManager.defaultManager().fileExistsAtPath(filePath) // false
{
… 
}

但是我在控制台中收到以下错误消息:

Warning: CFFIXED_USER_HOME is not set!  It should be set to the simulated home directory.
Failed to inherit CoreMedia permissions from 59919: (null)

文档说明了使用NSFileCoordinatorNSFilePresenter的内容。我找不到如何使用它们。我确定我需要在某处告诉他们应用程序组标识符,但我不知道在哪里。

1 个答案:

答案 0 :(得分:1)

我得到了它的工作。由于我不需要从扩展程序中编写文件,因此我认为我不需要使用NSFileCoordinator。结果NSFileManager有一个方法containerURLForSecurityApplicationGroupIdentifier()来检索容器URL。

let manager = NSFileManager()
let containerURL = manager.containerURLForSecurityApplicationGroupIdentifier("group.MyGroupIdentifier")

let filePath = "\(containerURL.path)/config.plist"
let settings = NSDictionary(contentsOfFile: filePath)