Если вы перебираете String
, то каждый элемент представляет собой один символ строки.
Вы можете перебирать массив categories
for category in responseJSON.categories {
print(category.categoryName ?? "No name")
}
Чтобы получить все имена, вы можете использовать compactMap
, который удаляет nil
значения из массива
Далее:
Если каждая категория имеет свое имя, сделайте тип этого свойства необязательным String
(тогда вы можете использовать map
вместо compactMap
)
Я бы улучшил ваше наименование. Переименуйте categoryName
ключ json в name
, используя CodingKeys
enum. Тогда вы можете сделать
category.name
Статический класс нельзя инстанцировать и может содержать только статических участников. Следовательно, призывы к статическому классу как: MyStaticClass.MyMethod(...)
или MyStaticClass.MyConstant
.
Не статический класс можно инстанцировать и может содержать нестатических участников (конструкторы экземпляра, деструктор, индексаторы). Нестатический член нестатического класса является вызываемым только через объект:
MyNonStaticClass x = new MyNonStaticClass(...);
x.MyNonStaticMethod(...);
Во-первых, комментарий к ответу, который спрашивают о том, что "статичный" означает. В терминах C#, "статичных", означает "касающийся самого типа, а не экземпляра типа". Вы получаете доступ к статическому участнику (от другого типа) использование имени типа вместо ссылки или значения. Например:
// Static method, so called using type name
Guid someGuid = Guid.NewGuid();
// Instance method, called on a value
string asString = someGuid.ToString();
Теперь, статические классы...
Статические классы обычно используются в качестве "служебных" классов. Канонический пример, вероятно, System.Math
. Не имеет смысла создавать экземпляр математики - это просто. Несколько правил (и "может" и, "не могут"):
object
. Вы не можете указать другой базовый тип или заставить статический класс реализовать интерфейс.abstract
модификатор самостоятельно.sealed
модификатор самостоятельно.Статический класс также не может быть наследован от, тогда как нестатический класс со статическими участниками может быть наследован от.
Все методы/свойства в статическом классе должны быть статичными, тогда как 'нормальный' класс может содержать соединение методов экземпляра и статических методов.
public static class ClassName {}
Статический класс точно так же, как глобальная переменная: можно использовать его где угодно в коде, не инстанцируя их. Например: ClassName. После точечного оператора можно использовать любое свойство или функцию его.
public class ClassName {}
Но если у Вас есть нестатический класс затем, необходимо создать экземпляр этого класса. Например:
ClassName classNameObject = new ClassName();
Вы не можете инстанцировать (создайте объекты), статический класс. И это может только содержать статических участников.
Пример: система. Математика
Статический класс может содержать статических участников только.
Статический участник может использоваться, не инстанцируя класса сначала.
Статические классы и участники используются для создания данных и методов, к которым можно получить доступ, не создавая экземпляр (использующий new
ключевое слово, у них не может быть конструктора) класса.
Статические классы могут быть объявлены, когда нет никакой зависимости от ее собственных объектных идентификационных данных, таким образом, статический класс должен содержать только статических участников.
Это классы загружаются CLR, когда программа или пространство имен, содержащее класс, загружаются.
Они также изолируются, не может быть наследован от.
http://www.javaworld.com/javaworld/javaqa/1999-08/01-qa-static2.html - очень хорошая статья об этом. Это для Java. Но я думаю, что концепция должна быть такой же и в C#.