Я смущен насчет сравнения делегатов. То, что я собираюсь сделать, - проверить двух игроков, чтобы увидеть, одинаковы ли они. Но когда я пытаюсь выполнить код ниже, я получаю ошибку компилятора, которая говорит: «IPlayer не конвертируется в MirrorDisposition». Каков идеальный способ проверить делегатов в Swift?Сравнение двух объектов-делегатов - это один и тот же экземпляр
Вот мой код:
var str = "Hello, playground"
protocol IPlayer{
var x:Int {get set}
}
protocol IMatch{
var ballOwner:IPlayer? {get set}
}
class Player:IPlayer{
var x:Int = 5
}
class Match{
var ballOwner:IPlayer?
}
var firstPlayer:protocol<IPlayer> = Player()
var secondPlayer:protocol<IPlayer> = Player()
//here is the problem !
if firstPlayer == secondPlayer {
println("equal")
}
// if i check with reflection there is no error. But is it correct way?
var a = reflect(firstPlayer)
var b = reflect(secondPlayer)
if a.objectIdentifier == b.objectIdentifier {
println("equal no error")
}
Ваше имя говорит «тот же экземпляр»; ваше описание говорит «они одинаковы». Так что это? Вы хотите проверить, что они указывают на один и тот же объект или что объекты равны? – newacct
Я хочу проверить, не являются ли они одним и тем же объектом в памяти :) –