#arrays #swift #object
#массивы #быстрый #объект #swift
Вопрос:
У меня есть объект, подобный приведенному ниже, который представляет собой массив объектов.
На языке swift, как я могу проверить, является ли object массивом объектов?
DefinitionList = (
{
accountNum = {
isEditable = 1;
isRequired = 1;
};
bAccountType = {
isEditable = 1;
isRequired = 0;
},
},
{
accountNum = {
isEditable = 1;
isRequired = 1;
};
bAccountType = {
isEditable = 1;
isRequired = 0;
};
},
..
..)
Комментарии:
1. Извините, но если вы анализируете это, разве вы уже не определили это? Не будет ли вопрос скорее в том, есть ли у вас один или несколько объектов в вашем массиве?
Ответ №1:
Обычно я использую это в Swift 2 :
var DefinitionList = NSObject?()
DefinitionList = ["ciao" : "ciao"]
// DefinitionList = ["ciao"]
guard DefinitionList != nil else {
print("DefinitionList empty")
return
}
guard ((DefinitionList as? Array<NSObject>) != nil) else {
print("I'm a Dictionary")
return
}
print("I'm a Array")
Swift 3
var DefinitionList : NSObject?
// DefinitionList = ["ciao" : "ciao"] as NSObject
DefinitionList = ["ciao"] as NSObject
guard DefinitionList != nil else {
print("DefinitionList empty")
return
}
guard ((DefinitionList as? Array<NSObject>) != nil) else {
print("I'm a Dictionary")
return
}
print("I'm a Array")
Комментарии:
1. Я получаю, что приведение из типа myFoundatitionObject в несвязанный тип Array< NSObject> всегда терпит неудачу
Ответ №2:
Вы можете использовать оператор «is» на языке Swift.
if objects is [AnyObject] {
print("right, its array of objects!")
} else {
print("no, its not an array of objects!")
}
Надеюсь, это поможет вам
Комментарии:
1. это не работает, поскольку мой массив объектов является пользовательским объектом foundation, и это дополняет «приведение из .. всегда сбой»