Küçük nesneler yapıp, özel nesneleri kullanarak işlemleri ayarla üzerine bazı testler yaptım ama hala başarısız oluyorlar ve neden hiçbir fikrim yok.Ayarlama işlemlerinin özel nesneler üzerinde çalışması için ne yapmalısınız?
let user1 = User(id: "zach")
let user2 = User(id: "john")
let user3 = User(id: "shane")
let user4 = User(id: "john")
let user5 = User(id: "shane")
let user6 = User(id: "anthony")
let userSet1 : Set<User> = [user1, user2, user3]
let userSet2 : Set<User> = [user4, user5, user6]
Ama bir operasyon şöyle yaptığınızda:
class User: NSObject {
let id: String
init(id: String) {
self.id = id
super.init()
}
override var hashValue: Int {
get {
return id.hashValue
}
}
override var description: String {
get {
return id
}
}
}
func ==(lhs: User, rhs: User) -> Bool {
return lhs.hashValue == rhs.hashValue
}
Sonra ben User
nesnelerin iki set yapılmış
let newSet = userSet1.subtract(userSet2)
print(newSet)
newSet
userSet1
aynıdır ve setleri hiçbiri modifiye edilmiştir.
Bu set işlemlerini çalışmak için ne yapmalıyım?
id:zach -> 4799450060450308971
id:john -> 4799450060152454338
id:shane -> -4799450060637667915
id:john -> 4799450060152454338
id:shane -> -4799450060637667915
id:anthony -> 4799450059843449897
id:shane -> -4799450060637667915
id:anthony -> 4799450059843449897
id:john -> 4799450060152454338
İpucu: 'NSString (string: id) .integerValue' dosyasını döndürmeden önce döndürün ve elverişlilik gereksinimlerini başarıyla karşılayıp karşılamadığınızı görün. – matt
Ancak, hashValue'ye göre, ortak üyeler – shakked
'hashValue' hesaplamasını güncelledim ve bazı baskılar ekledim ve bazılarının "hashValues" ile eşleştiğini görebiliyorsunuz ancak işlem hala çalışmıyor – shakked