Swift:如何在 plist 中获取第一个数组字符串?
Posted
技术标签:
【中文标题】Swift:如何在 plist 中获取第一个数组字符串?【英文标题】:Swift: How to get first string of array in plist? 【发布时间】:2017-11-17 03:29:20 【问题描述】:我有一个 plist,它是一个包含数百个数组的数组,每个数组包含 22 个字符串。如何获取 plist 中每个数组的第一个字符串?
我正在使用集合,在cellForItemAt
中,我试图让数组的第一个字符串显示在标签中的每个单元格下方。
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! Collections
// Set Image
cell.imageCell.image = UIImage(named: "image_\(indexPath.row)")
// Check NameLabel Switch Status
if savedSwitchStatus == true
cell.labelCell.isHidden = false
cell.labelCell.text = (??) // <--------------
else
cell.labelCell.isHidden = true
return cell
我有 2 种类型的 plist:
第一个 plist 有 1 个包含多个字符串的数组。每个字符串都是位于单元格下方的名称。
第二个 plist 是一个数组数组,每个数组包含 22 个字符串。在这里,我只需要从每个数组中获取第一个字符串以显示在单元格下。
【问题讨论】:
只需要从plist文件中获取数据并为所欲为***.com/questions/1343121/plist-array-to-nsdictionary 【参考方案1】:您需要将您的 plist 解析为字符串数组,即 [[String]]。
func arrayFromPlist(plist:String) -> [[String]]?
guard let fileUrl = Bundle.main.url(forResource: plist, withExtension: "plist"), let data = try? Data(contentsOf: fileUrl) else
return nil
return try? PropertyListSerialization.propertyList(from: data, options: [], format: nil) as? [[String]]
使用上述函数获取数组并将数组作为tableview的数据源。
var datasourceArray:[[String]]
didSet
self.tableView.reloadData()
在你的 cellForRow 中:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! Collections
// Set Image
cell.imageCell.image = UIImage(named: "image_\(indexPath.row)")
let strings = datasourceArray[indexPath.row]!
// Check NameLabel Switch Status
if savedSwitchStatus == true
cell.labelCell.isHidden = false
cell.labelCell.text = strings.first
else
cell.labelCell.isHidden = true
return cell
【讨论】:
【参考方案2】:我只是在 plist 的数组上使用了indexPath.row
并匹配了它。
【讨论】:
以上是关于Swift:如何在 plist 中获取第一个数组字符串?的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 - 从 plist 的所有数组中获取所有项目
如何使用 Swift 将新数组数据添加到 plist 文件中的 NSDictionary