как проверить, является ли объект массивом объектов

#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, и это дополняет «приведение из .. всегда сбой»