I'm currently using this extension for Swift 3/4:
extension Array
{
func containsObject(_ object:Any) -> Bool
{
if let anObject:AnyObject = object as? AnyObject
{
for obj in self
{
if let anObj:AnyObject = obj as? AnyObject
{
if anObj === anObject
{
return true
}
}
}
}
return false
}
}
Conditional cast from 'Any' to 'AnyObject' always succeeds.
Conditional cast from 'Element' to 'AnyObject' always succeeds.
That means there is no need to use conditional cast. Remove the if let and change as?
to as
extension Array {
func containsObject(_ object: Any) -> Bool {
for obj in self {
if obj as AnyObject === object as AnyObject {
return true
}
}
return false
}
}
Or simply:
extension Array {
func containsObject(_ object: Any) -> Bool {
return contains(where: {$0 as AnyObject === object as AnyObject})
}
}