swift 存储为plist什么属性

2025-05-18 23:49:45
推荐回答(1个)
回答1:

第一,你 Root plist 中的对象是 NSArray 不 NSDictionary 。
第二,如果你想要在基础集合 (不要相信这作品与swift的数组) 使用 KVC 你需要调用 valueForKeyPath 。
let chapterPath = NSBundle.mainBundle().pathForResource("chapterMapping", ofType: "plist")
if let arrayOfItems: [AnyObject] = NSArray(contentsOfFile: chapterPath!) {
let chapterNames: [String] = arrayOfItems.valueForKeyPath("chapterName") as NSArray as [String]
let pageNumbers: [Int] = arrayOfItems.valueForKeyPath("pageNumber") as NSArray as [Int]
}

第三,做这件事的 swift y 方式会与 map 功能,但 arrayOfItems 将需要一个强烈定义的类型,它可能更多的工作,真不值得。 示例:
let array: [ChapterMetaData] = // define it here
let chapterImages = array.map { $0.chapterImage }