युक्त हमारे कोडबेस को स्विफ्ट 2 में अपग्रेड करने के बाद मुझे असामान्य समस्या का सामना करना पड़ा है। सेट अनुमानित नहीं है और न ही उम्मीद के अनुसार संघटन है।स्विफ्ट 2.0 एनएसओब्जेक्ट सबक्लास
class A: NSObject {
let h: Int
init(h: Int) {
self.h = h
}
override var hashValue: Int {
return h
}
}
func ==(lhs: A, rhs: A) -> Bool {
return lhs.hashValue == rhs.hashValue
}
let a = A(h: 1)
let b = A(h: 1)
var sa = Set([a])
let sb = Set([b])
sa.subtract(sb).count // Swift1.2 prints 0, Swift 2 prints 1
sa.contains(a) // Swift1.2 true, Swift 2 true
sa.contains(b) // Swift1.2 true, Swift 2 false
ऐसा लगता है कि नया सेट आंतरिक संचालन के लिए हैशवैल्यू का उपयोग नहीं कर रहा है। कोई विचार यह है कि एक बग, या इस मुद्दे को हल करने का एक तरीका है?
धन्यवाद! मुझे यह समस्या एमकेएनोटेशन सबक्लास (जिसे एनएसओब्जेक्ट का विस्तार करने की भी आवश्यकता है) के साथ समस्या हो रही थी। क्या आपके पास इस विषय पर कुछ दस्तावेज का लिंक है? – brki
स्विफ्ट 3 –