5. Программирование на Objective-C. Введение в ООП и указатели

Основные принципы:
  • абстракция (например, класс NSObject)
  • инкапсуляция (сокрытие методов (поведения) и свойств (полей, переменных) внутри класса)
  • полиморфизм
  • насследование

Примеры классов из фреймворка Foundation (подключается как #import <Foundation/Foundation.h>):
  • NSData
  • NSButton
  • NSCalendar
  • NSViewController
  • NSArray
  • NSString
  • NSDate
  • NSCoder
  • NSLock
  • NSError


        NSString * theFirstName = @"";
        NSString* theLastName = @"";
        NSString *theMiddleName = @"";
        NSLog(@"%@ %@ %@", theFirstName, theMiddleName, theLastName);

Пример создания объектов класса NSString.

Звездочка говорит о том что переменная является указателем. Т.е. фактические в ней хранится не сам объект, а адрес в памяти по которому можно найти объект.

Некоторые утверждают, что звездочку надо ставить отдельно от переменной, как первых двух строках примера выше, потому что она не относится к имени переменной, а скорее подчеркивает тип переменной.

Другие утверждают что звездочку надо писать вплотную к имени переменной чтобы сразу было видно, что это указатель. Лично я именно так и привык писать. Кроме того есть некоторые стандарты, которые тоже поддерживают именно этот вариант:


Другие стандарты.

Еще пример:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    @autoreleasepool {
        NSDate *theToday = [NSDate date];
        NSLog(@"theToday = %@", theToday); // theToday = 2014-08-15 10:00:02 +0000
        
        NSString *theHelloWorld = @"Hello, World!";
        unsigned long theSize = [theHelloWorld length];
        NSLog(@"theHelloWorld.length = %lu", theSize); // theHelloWorld.length = 13

    }
    return 0;
}

Если выделить класс то в Quick help inspector отражается помощь по классу.


Аналогичную помощь можно получить если нажать на классе с зажатой клавишей ⌥ Option или Windows logo клавишей, если вы под Хакинтошем. В справке по методам класса, + значит что метод классовый. а - значит что метод объектный.

Некоторые методы класса NSString:
  • lowercaseString
  • uppercaseString
  • length
  • hasSuffix
  • hasPrefix

Правила наименования методов в Objective-C иногда приводят к таким вот длинным конструкциям.


Как расшифровать сигнатуру метода в Objective-C