#ipad #cocoa #objective_c #ios #iphone
Closed. This question is off-topic. It is not currently
accepting answers.
Want to improve this question? Update the question so
it's on-topic for Stack Overflow на русском.
Closed 4 года назад.
Расскажите общие ошибки, допущенные Objective-C разработчиками, которые вы знаете.
Как мы можем их избежать? В общем, хотелось бы увидеть ошибки связанные с управлением
памятью, анти-паттерны и любые другие ошибки программирования под iOS.
Пожалуйста, обоснуйте свой ответ, а также можно привести примеры.
Начну с одной известной ошибки. Это объявление нового класса без суперкласса, т.е.
предполагая, что он будет иметь суперкласс по умолчанию. Здесь важно помнить, что Objective-c
не поддерживает множественное наследование, НО поддерживает несколько корней. То есть
корень - это не обязательно только класс NSObject. Таким образом, если вы пишете
/* не имеет суперкласса, не делайте этого! */
@interface MyClass
@end
Вы объявляете новый корень, а не подкласс NSObject.
Все подклассы NSObject должны быть прописаны вот так:
/* суперкласс NSObject */
@interface MyClass : NSObject
@end
Ответы
Ответ 1
UIViews и UIViewControllers - разные вещи и не могут быть взаимозаменяемыми. Не каждый контроллер должен быть UIViewController. Жизненный цикл UIViewController. В частности вьюшка выгружается (unloaded) в ответ на memory warnings. Обычно это бывает, когда разработчик использует вьюшку для хранения данных. Результат - потеря данных.Ответ 2
Эта ошибка относится не только для новичков Objective-C (но и для Java, например). То есть проблема общего понимания того, что пишешь. Сравнение через == str == @"Test" Вместо [str isEqualToString:@"Test"]Ответ 3
Самая типичная ошибка - нахвататься верхушек, минуя стадию получения полноценных базовых знаний по языку и его обвязке. Остальное всего лишь следствие.
Комментариев нет:
Отправить комментарий