领域:结果<T>[索引] 无法正常工作

Realm: Result<T>[index] not properly working

我查询 1000 个联系人的结果,按姓氏排序。然后我创建随机索引并查询对象。但是,我得到的不是随机联系人,而是前 n 个联系人...如果索引不能正常工作,为什么排序结果中的对象可以通过索引来寻址?

if let contacts = ContactsProvider.sharedInstance.loadContactsWithReload(){

    if(contacts.count <= 1){
        return nil;
    }

    if(contacts.count <= 10){
        random10Group.contacts.appendContentsOf(contacts)
    }
    else{
        var randomIndices = [Int]()
        while randomIndices.count < 10{

            let random = Int(arc4random_uniform(UInt32(contacts.count)))
            if(!randomIndices.contains(random)){
                randomIndices.append(random)
                print(random)
            }
        }

        let contactList = List<Contact>()

        for var index = 0; index < randomIndices.count; index++ {
            let contact = contacts[index]
            contactList.append(contact)
            print(contact.fullName())
        }

        random10Group.contacts = contactList

        return random10Group
    }
}

let contactList = List<Contact>()
for var index = 0; index < randomIndices.count; index++ {
    let contact = contacts[index]
    contactList.append(contact)
}

index0randomIndices.count - 1,这就是为什么 你得到第一个联系人。

你的意思可能是

let contactList = List<Contact>()
for index in randomIndices {
    let contact = contacts[index]
    contactList.append(contact)
}

以便index遍历随机数组的元素

注意循环可以简化为

let contactList = randomIndices.map { contacts[[=12=]] }