如何在Swift中向自定义对象数组添加元素

gen*_*aks 1 ios 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)
    }
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,数组中元素的数量似乎总是为"零".我已按以下方式声明了数组

    var arrayOfContacts:[Contact]?
Run Code Online (Sandbox Code Playgroud)

,Contact是数组应该包含的Object类型.

而另一个是

    var people : [SwiftAddressBookPerson]? = []
Run Code Online (Sandbox Code Playgroud)

print语句确实给出了结果,但对象永远不会被添加到数组中.

对我做错的任何想法都会有很大帮助.

aya*_*aio 5

您的数组被声明为可选数组,但不是这样创建的nil.

你的声明:

var arrayOfContacts:[Contact]?
Run Code Online (Sandbox Code Playgroud)

添加实际空数组的创建:

arrayOfContacts = []
Run Code Online (Sandbox Code Playgroud)

或者一下子创建它:

var arrayOfContacts:[Contact]? = []
Run Code Online (Sandbox Code Playgroud)