我需要从主要目标中创建的TodayViewController
访问plist。因此,我还需要创建具有Today窗口小部件目标访问权限的plist。
我已经这样创建了plist,但是我需要从今天的扩展目标中访问此plist
let InfoDict:NSDictionary = [
"ParentInfo":"Mathew"
]
DispatchQueue.main.async {
let isWritten = InfoDict.write(toFile: self.getPlistPath(), atomically: true)
print("is the file created: \(isWritten)")
}
func getPlistPath()->String{
let fileManager = FileManager.default
let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let path = documentDirectory.appending("/UserConfig.plist")
if(!fileManager.fileExists(atPath: path)){
self.saveGlobalValuesToPlist()
}
return path
}
答案 0 :(得分:0)
我认为您需要将plist文件放在“应用程序组”文件夹中:
第1步:创建应用程序组:Project Navigator-> YOUR_APP_TARGET->功能->激活应用程序组->添加应用程序组ID(通常为group.YOUR_APP_BUNDLE)
第2步:通过在功能中激活应用组并选择此SAME应用组ID来在您的小部件目标中添加此应用组ID
第3步:将您的plist保存在App Group文件夹中。使用以下代码从TodayViewController
和您的主应用程序中检索此文件夹的url:
guard let appGroupURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: YOUR_APP_GROUP_ID) else {
return
}
希望这会有所帮助。