[英]Swift: Merging 2 or more elements custom objects in array based on unique value
[英]How to add elements to an array of custom objects in Swift
我正在使用此代碼將自定義對象添加到數組,然后在自定義 TableView 中顯示該數據。
var tempCount = self.people?.count
for var k = 0 ; k < tempCount ; k++
{
if let PERSON = self.people?[k]
{
let name = (PERSON.compositeName != nil) ? PERSON.compositeName : ""
let number = (PERSON.phoneNumbers?.first?.value != nil) ? PERSON.phoneNumbers?.first?.value : ""
let image = (PERSON.image != nil) ? PERSON.image : UIImage(named: "aks.jpg")
let details = Contact(userImage: image!, userName: name!, phoneNumber: number!)
println(details.userName + " " + details.phoneNumber)
self.arrayOfContacts?.append(details)
println(self.arrayOfContacts?.count)
}
}
由於某種原因,數組中元素的計數似乎總是“nil”。 我已按以下方式聲明數組
var arrayOfContacts:[Contact]?
, Contact 是數組應該包含的對象類型。
而另一個作為
var people : [SwiftAddressBookPerson]? = []
打印語句確實給出了結果,但對象永遠不會被添加到數組中。
關於我做錯了什么的任何想法都會非常有幫助。
您的數組被聲明為 Optional 數組,但未創建,因此它是nil
。
您的聲明:
var arrayOfContacts:[Contact]?
添加創建一個實際的空數組:
arrayOfContacts = []
或者一次完全創建它:
var arrayOfContacts:[Contact]? = []
你的arrayOfContacts 是nil,所以arrayOfContacts?.count
.count 也是nil。
如果你真的想附加到 arrayOfContacts,不要寫self.arrayOfContacts?.append(details)
因為這意味着“附加到 arrayOfContacts 但實際上我並不在乎,如果 arrayOfContacts 為零,就放棄”。
相反,寫self.arrayOfContacts!.append(details)
,因為現在這意味着“附加到 arrayOfContacts,而且因為我真的很在意,請大聲告訴我,有致命的崩潰錯誤,當 arrayOfContacts 為零時,因為我會必須弄清楚為什么這個數組在不應該是 nil 的時候卻是 nil。我的意思是,我是機器的主人,而不是相反,我很清楚當我想追加時,arrayOfContacts 不應該是 nil到它。”
通常,當您處理數據時,您不僅擁有固定數量的元素。 以一個程序為例,您可以計算一個班級中多個成績的平均值:
var grade1 = 4
var grade2 = 3
var average = Double(grade1 + grade2) / 2.0
println("Average grade: \(average)")
如果我們希望該程序在我們有 3 個成績時也能運行怎么辦? 我們必須更改我們的程序以使用 3 個年級。
var grade1 = 4
var grade2 = 3
var grade3 = 5
var average = Double(grade1 + grade2 + grade3) / 3.0
println("Average grade: \(average\)")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.