Ответ 1
Swift 1:
let array = ["1", "2", "3"]
let contained = contains(array, "2")
println(contained ? "yes" : "no")
Swift 2 и Swift 3:
let array = ["1", "2", "3"]
let contained = array.contains("2")
print(contained ? "yes" : "no")
Im с ним снова с быстрыми массивами и содержит объект, предоставленный только NSArray!
Я соединяю быстрый массив с NSArray, который содержит:
extension Array {
func contains(object:AnyObject!) -> Bool {
if(self.isEmpty) {
return false
}
let array: NSArray = self.bridgeToObjectiveC();
return array.containsObject(object)
}
}
он отлично работает в целом, но как только я ставлю строку! в массиве типа String происходит сбой. Хотя containsObject действительно принимает AnyObject!
var str : String! = "bla"
var c = Array<String>();
c.append(str)
println(c.contains(str))
Объявление строки! массив также не помогает
var str : String! = "bla"
var c = Array<String!>();
c.append(str)
println(c.contains(str))
НО то же самое без! отлично работает
var str : String = "bla"
var c = Array<String>();
c.append(str)
println(c.contains(str))
ТАК как я явно обернуть материал? Я действительно не понимаю, почему мне пришлось бы явно обернуть его только так, чтобы он был полностью развернут, но вот как он выглядит...
Swift 1:
let array = ["1", "2", "3"]
let contained = contains(array, "2")
println(contained ? "yes" : "no")
Swift 2 и Swift 3:
let array = ["1", "2", "3"]
let contained = array.contains("2")
print(contained ? "yes" : "no")
Свифта
Если вы не используете объект, вы можете использовать этот код для пользователя.
let elements = [ 10, 20, 30, 40, 50]
if elements.contains(50) {
print("true")
}
Если вы используете NSObject Class в swift. Эти переменные соответствуют моим требованиям. вы можете изменить свои требования.
var cliectScreenList = [ATModelLeadInfo]()
var cliectScreenSelectedObject: ATModelLeadInfo!
Это для одного и того же типа данных.
{ $0.user_id == cliectScreenSelectedObject.user_id }
Если вы хотите тип AnyObject.
{ "\($0.user_id)" == "\(cliectScreenSelectedObject.user_id)" }
Полное условие
if cliectScreenSelected.contains( { $0.user_id == cliectScreenSelectedObject.user_id } ) == false {
cliectScreenSelected.append(cliectScreenSelectedObject)
print("Object Added")
} else {
print("Object already exists")
}