DKImagePickerController:如何将 DKAsset 数组保存到 NSUserDefaults
DKImagePickerController: how to save DKAsset array to NSUserDefaults
我已经在我的应用程序中实现了 cocoapod DKImagePickerController,我想使用内置函数在应用程序重启时记住选择:
pickerController.selectedAssets = selAssets[sender]
但是,我似乎不知道如何保存 [[DKasset]](DKasset 的数组)。
我试过:
func getUserSettings()
{
selAssets = NSKeyedUnarchiver.unarchiveObjectWithFile(fileInDocumentsDirectory("assets")) as! [[DKAsset]]
}
func setUserSettings()
{
NSKeyedArchiver.archiveRootObject(selAssets, toFile: self.fileInDocumentsDirectory("assets"))
}
但是 getUserSettings() 不会用可用对象填充数组。我也尝试过使用 NSUserDefaults 的 objectForKey,但这似乎与 DKAsset 不兼容。 class DKAsset 是 NSObject 的子class。
如何保存和加载这个数组?
cocoa 连播:
https://cocoapods.org/pods/DKImagePickerController
对于任何想要这样做的人:
func loadFromNSDefaults()
{
if UserDefaults.standard.stringArray(forKey: "selection") != nil
{
assetIdentifier = UserDefaults.standard.stringArray(forKey: "selection")!
}
fetchAsset.removeAll()
selAssets.removeAll()
let options = PHFetchOptions()
for i in 0..<assetIdentifier.count
{
print(i)
fetchAsset.append(PHAsset.fetchAssets(withLocalIdentifiers: assetIdentifier, options: options).object(at: i))
selAssets.append(DKAsset.init(originalAsset: fetchAsset[i]))
}
}
func saveToNSDefaults(assets: [DKAsset])
{
assetIdentifier.removeAll()
for i in 0..<assets.count
{
assetIdentifier.append((assets[i].originalAsset?.localIdentifier)!)
print(assets[i].originalAsset?.localIdentifier)
}
UserDefaults.standard.setValue(assetIdentifier, forKey: "selection")
}
我已经在我的应用程序中实现了 cocoapod DKImagePickerController,我想使用内置函数在应用程序重启时记住选择:
pickerController.selectedAssets = selAssets[sender]
但是,我似乎不知道如何保存 [[DKasset]](DKasset 的数组)。
我试过:
func getUserSettings()
{
selAssets = NSKeyedUnarchiver.unarchiveObjectWithFile(fileInDocumentsDirectory("assets")) as! [[DKAsset]]
}
func setUserSettings()
{
NSKeyedArchiver.archiveRootObject(selAssets, toFile: self.fileInDocumentsDirectory("assets"))
}
但是 getUserSettings() 不会用可用对象填充数组。我也尝试过使用 NSUserDefaults 的 objectForKey,但这似乎与 DKAsset 不兼容。 class DKAsset 是 NSObject 的子class。
如何保存和加载这个数组?
cocoa 连播: https://cocoapods.org/pods/DKImagePickerController
对于任何想要这样做的人:
func loadFromNSDefaults()
{
if UserDefaults.standard.stringArray(forKey: "selection") != nil
{
assetIdentifier = UserDefaults.standard.stringArray(forKey: "selection")!
}
fetchAsset.removeAll()
selAssets.removeAll()
let options = PHFetchOptions()
for i in 0..<assetIdentifier.count
{
print(i)
fetchAsset.append(PHAsset.fetchAssets(withLocalIdentifiers: assetIdentifier, options: options).object(at: i))
selAssets.append(DKAsset.init(originalAsset: fetchAsset[i]))
}
}
func saveToNSDefaults(assets: [DKAsset])
{
assetIdentifier.removeAll()
for i in 0..<assets.count
{
assetIdentifier.append((assets[i].originalAsset?.localIdentifier)!)
print(assets[i].originalAsset?.localIdentifier)
}
UserDefaults.standard.setValue(assetIdentifier, forKey: "selection")
}