Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение
Просьба не воспринимать мой комментарий, как личную критику, поскольку это лишь желание разобраться в деталях. Но мне как новичку в Objective-C было крайне тяжело понять вашу интерпретацию официальной документации, сложнее, чем читать специализированные книги в оригинале.
Например, зачем вообще использовать термин «инвариант» и называть им всё подряд?
«…Основным преимуществом объектно-ориентированного подхода стала возможность создавать новые классы на основе уже написанных (добавлять инварианты и методы, переопределять методы…»

Здесь вместо «инварианты» подошло бы распространённое «переменные» или хотя-бы «свойства». Но это было не суть важно, если бы не дальше:
«…Инвариант isa относится к зарезервированному типу Class…»

Тоесть isa тоже инвариант? Но ведь это не переменная, это указатель, который является лишь частью переменной или объекта.

«Строковая константа такого класса записывается как @”Hello world”»

@«Hello world» -это объект класса NSString. Почему он константа?

«Чтобы заставить объект выполнить какой-нибудь метод нужно послать ему сообщение, именуемое так же, как и требуемый метод. Такое сообщение называется селектор метода. Синтаксис посылки таков:
[receiver method];»

Из этого предложения я могу лишь сделать ошибочный вывод, что метод и селектор метода это одно и то же. После этого раздел «Как работает передача сообщений» запутывает еще больше.
Но, если я правильно понимаю, разница в том, что селектор это лишь указатель на метод, который даёт возможность использовать имя метода как аргумент функции. В то время как метод — это и есть сама функция.

«Методы с неограниченным количством аргументов вызываюся следующим синтаксисом:
[receiver undefinedNumberParameters: one, two, three, four, five, six, seven];»

А как же «nil» в конце, который указывает на завершение инициализации?

«использовать определенные в базовом классе методы как свои), названное наследованием.»

В «базовом классе» это частный случай. Корректнее было бы «в родительском классе».

«Oбъекту класса MyPrinter можно гарантированно посылать сообщения print и switchedOn…»

Нельзя. Класс MyPrinter должен сначала реализовать все required методы протокола. Разве нет?

«Свойство – это некоторое имя, доступное через указатель на объект посредством оператора точка “.”…»

Согласитесь, что это не определение.
В результате я потратил 2 дня на изучение статьи, которая подарила больше вопросов, чем ответов. Поэтому просьба подсказать, если я сделал неверные выводы.
Во-первых, действительно, мой Мас просто не потянет Swift.
Во-вторый, Swift как первый язык программирования — это слишком жестоко. Как не показалось при первом знакомстве, Свифт значительно отличается от остальных языков, а я хотел получить общую картинку шаблона, как должно выглядеть написание программы.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность