相對較新的編程,我理解可選綁定,並試圖安全地解開dictTemp可選 - 我的理解是,如果sortedResults.objectAtIndex沒有值,它應該只返回零!相反,它正在崩潰應用程序。可選綁定是爲了防止應用程序崩潰,所以也許我誤解了如何解開optionals!Swift可選解開仍然崩潰
基本上我得到的崩潰有時候是sortedResults字典是空的,或者沒有足夠的條目來循環正確的次數。我希望它返回零而不是崩潰。
var mainArrOfDict:NSMutableArray = NSMutableArray()
var descriptor: NSSortDescriptor = NSSortDescriptor(key: "SortingNumber", ascending: false)
var subDescriptor1: NSSortDescriptor = NSSortDescriptor(key: "TotalCount", ascending: false)
var subDescriptor2: NSSortDescriptor = NSSortDescriptor(key: "ArrayLength", ascending: true)
var sortedResults: NSArray = mainArrOfDict.sortedArrayUsingDescriptors([descriptor,subDescriptor1,subDescriptor2])
func SortingArray(sortingArray : NSArray, maxLimit : Int , minLimit : Int) -> NSMutableArray
var usersSelectedString: String = User.currentUser.getCount() as String
var usersSelectedInt: Int? = usersSelectedString.toInt()
for var j=0 ; j < usersSelectedInt; j++ {
// ** Crash highlights the line below
if let dictTemp : NSDictionary = sortedResults.objectAtIndex(j) as? NSDictionary {
if let strTotalCount : AnyObject = dictTemp.objectForKey("index") {
arrFinalArray.addObject(finalArrayToSort.objectAtIndex(Int(strTotalCount as! NSNumber)))
}
}
}
return arrFinalArray
}
從碰撞
控制檯日誌: 2015年7月5日18:18:38.636切片[758:126835] *終止應用程序由於未捕獲的異常 'NSRangeException',原因:「* - [__ NSArrayI objectAtIndex :]:索引0超出空數組的邊界'
你在哪裏/如何聲明「sortedResults」? –
在問題中添加了代碼。爲了讓所有人都頭疼,儘管我只是回到了我認爲上下文有必要的地步! – Chris
您可能也想從崩潰發佈控制檯輸出。這會給讀者帶來更多的色彩:發生了什麼。 – Adrian