1
私はゾンビの配列を有するに基づいて構造体の配列のインデックスを検索し、以下のように、各ゾンビ構造体である:1つの成分SWIFT
struct Zombie {
var number: Int
var location : Int
var health : Int
var uid : String
var group: Int
}
私はゾンビの配列を有する
ZombieArray = [Zombie1, Zombie2, Zombie3]
zombieHealthが変更されたら更新する必要がありますが、最初のゾンビを見つける必要があります。各ゾンビの位置、番号、およびUIDは一意であるため、それらのいずれかを検索することができます。私が試したし、エラーを得たもの。ここです:
let zombieToUpdate : Zombie?
for zombieToUpdate in self.zombieArray {
if zombieToUpdate.location == thisZombieLocation {
let indexOfUpdateZombie = zombieArray.indexOf(zombieToUpdate)
self.zombieArray.remove(at: indexOfUpdateZombie)
self.zombieArray.append(thisNewZombie)
}
}
私は次のエラーを取得しています:
Cannot convert value of type 'Zombie' to expected argument type '(Zombie) throws -> Bool'
このエラーは、ライン上に発生します。
let indexOfUpdateZombie = zombieArray.indexOf(zombieToUpdate)
がスイフト3で、それは(の)'指標であろう。 – rmaddy
私はそれを試して、次のようなことを知っています: '(of:Zombie)'の引数リストで 'index'を呼び出せません ' –
あなたのタイプをEquatableにするか、 'index(where:predicate)'を使用してください... https: /stackoverflow.com/questions/24028860/how-to-find-index-of-list-item-in-swift –