편집 : 문제는 @vacawama에 의해 이미 해결되었습니다. 그러나 NSObject classes
에 대한 대답을 찾으려면 NSObjectProtocol
인 isEqual
함수를 구현해야합니다. 그렇지 않으면 당신은거야 얻을 오류가 말한다 : "Redundant conformance of 'classname' to protocol 'Equatable'
"개체가 배열에 있는지 확인하는 방법
당신은 자세한 내용은이를 확인할 수 있습니다 빠른에서 Swift 2.2, Contains Method not working
, 객체가 배열에있는 경우 내가 확인할 수있는 방법?
저는 이처럼 간단한 클래스를 가지고 있습니다.
class Test: {
private var _number: Int!
private var _type: String!
var number: Int {
return _number
}
var type: String {
return _type
}
init (number: Int, type: String) {
self._number = number
self._type = type
}
}
또한이 클래스가 있습니다.
class TestRandom {
private let _numberArr: [Int] = [1,2,3,4,5,6,7,8,9,10]
private let _typeArr: [String] = ["x","y","z"]
public private(set) var _testArr: [Test] = []
private var _randomTest: Test!
func randomTestPicker() {
repeat {
let randomNumber = Int(arc4random_uniform(UInt32(self._numberArr.count)))
let randomType = Int(arc4random_uniform(UInt32(self._typeArr.count)))
self._randomTest = Test(number: self._numberArr[randomNumber], type: self._typeArr[randomType])
} while self._testArr.contains(_randomTest)
}
}
내가 원하는 것은 다른 개체를 선택하는 것입니다. 내가 _testArr에 x2, y4, x6, z3, z8, y2 있다고 가정 해 보겠습니다. randomTestPicker를 호출하면 x2 또는 z8을 선택해서는 안됩니다. 이미 배열되어 있기 때문입니다.
나는 포함되어있는 것을 보았습니다. 그러나 그것은 나를 위해 작동하지 않았다. 이 목적으로 사용할 수있는 솔루션이 있습니까? 또는 이것을 수행하는 가장 좋은 방법은 무엇입니까?
편집 : self._testArr.contains{$0 === _randomTest}
을 시도했지만 둘 다 작동하지 않습니다.
[스위프트 2 배열에 개체가 포함되어 있습니까?] (http://stackoverflow.com/questions/35443308/swift-2-array-contains-object) – Hamish