मैंने कस्टम ऑब्जेक्ट्स के साथ सेट ऑपरेशंस पर कुछ परीक्षण करने के लिए थोड़ा सा खेल मैदान बनाया लेकिन वे अभी भी असफल रहे हैं और मुझे नहीं पता कि क्यों।कस्टम ऑब्जेक्ट्स पर ऑपरेशन सेट करने के लिए आपको क्या करना चाहिए?
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]
लेकिन जब मैं तो जैसे एक ऑपरेशन करना:
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
}
फिर, मैं User
वस्तुओं के दो सेट बनाया
let newSet = userSet1.subtract(userSet2)
print(newSet)
newSet
userSet1
के समान है और सेट में से कोई भी संशोधित हैं
इन सेट ऑपरेशंस को काम करने के लिए मुझे क्या करना चाहिए?
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
संकेत: इसे वापस करने से पहले 'एनएसएसटींग (स्ट्रिंग: आईडी) .integerValue' लॉग करें और देखें कि क्या आप सफलतापूर्वक आवश्यकताओं के लिए आवश्यकताओं को पूरा कर रहे हैं या नहीं। – matt
लेकिन मेरे हैशवैल्यू के अनुसार, उनके पास – shakked
में सदस्य हैं, मैंने 'हैशवैल्यू' गणना को अपडेट किया है और कुछ प्रिंट जोड़े हैं और आप देख सकते हैं कि उनमें से कुछ 'हैशवैल्यू' से मेल खाते हैं लेकिन ऑपरेशन अभी भी – shakked