![](/img/trans.png)
[英]How to get sorted struct into another struct/dictionary using swift3?
[英]How to get sorted Dictionary from MutableArray using swift3
我設法從數據庫中創建字典,以在tableview
添加節。
我的函數將數據庫放入數組,並將數組放入字典(A:Aname1,Aname2,B:Bname1,Bname2 ...)。 當我對字典進行排序時,返回值是[String,[String]]類型,我需要將其設為[String:[String]],當我不使用sort操作時,會出現以下錯誤:
線程1:EXC_BAS_INSTRUCTION(代碼= EXC_I386_INVOP,子代碼= 0x0)
在控制台中:
致命錯誤:解開可選值(lldb)時意外發現nil
我的代碼:
class SectionData {
var marrCrimesNames : NSMutableArray!
func getCrimesNames() {
marrCrimesNames = NSMutableArray()
marrCrimesNames = ModelManager.getInstance().getAllCrimesNames()
}
func getSectionsFromData() -> [String: [String]] {
var sectionDictionary = [String: [String]]()
let crime: CrimesInfo = (marrCrimesNames.object(at: 0) as! CrimesInfo) // Thread1:EXC_BAS_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0)
_ = crime.Name
var firstLetter: [String] = []
for crime in marrCrimesNames {
firstLetter.append((crime as AnyObject).Name)
}
let characters = Array(Set(firstLetter.flatMap({ $0.characters.first })))
for character in characters.map({ String($0) }) {
sectionDictionary[character] = firstLetter.filter({ $0.hasPrefix(character) })
}
//var sortedSectionDictionary = sectionDictionary.sorted(by: { $0.key < $1.key })
// sort action return [String, [String]]
return sectionDictionary
}
}
錯誤是您假定該值返回: let crime: CrimesInfo = (marrCrimesNames.object(at: 0) as! CrimesInfo)
已設置。
該錯誤清楚地表明它沒有被設置並返回nil
。 所以檢查一下:
if let crime = marrCrimesNames.object(at: 0) {
// Here you can safely use crime ;)
}
你需要兩檢查兩件事
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.