Можете ли вы читать и понимать код на Objective-C?

«Можете ли вы читать и понимать код на Objective-C?» — вопрос из категории Swift Core, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, я могу читать и анализировать код на Objective-C. Этот язык остается критически важным для поддержки legacy-проектов и понимания низкоуровневых компонентов iOS/macOS.

Ключевые концепции, которые я понимаю:

  • Синтаксис объявления классов (@interface / @implementation).
  • Ручное управление памятью (MRC) и автоматическое подсчет ссылок (ARC) с модификаторами свойств (strong, weak, copy, nonatomic).
  • Динамическая природа языка: селекторы (@selector), категории (категории), расширения и messaging runtime.
  • Интероперабельность со Swift через @objc и бриджинг-заголовки.

Пример класса на Objective-C:

// Person.h
@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
- (instancetype)initWithName:(NSString *)name;
- (void)greet;
@end

// Person.m
#import "Person.h"
@implementation Person
- (instancetype)initWithName:(NSString *)name {
    self = [super init];
    if (self) {
        _name = name;
    }
    return self;
}
- (void)greet {
    NSLog(@"Hello, %@!", self.name);
}
@end

Этот код демонстрирует объявление класса, свойство с атрибутом strong, пользовательский инициализатор и метод экземпляра.