вторник, 5 февраля 2013 г.

iOS разработка или первое знакомство с Objective C

После долгого пропуска решил немного написать. Быть может это пригодится еще кому-нибудь. Сталкиваюсь с информацией, на которую большой спрос в англоязычной части интернета и весьма скудное описание в русскоязычной. Objective C. Это то, с чем мне пришлось познакомиться не так давно. Пока воспоминания свежи напишу, пока разрозненно, потом постараюсь "собрать в кучу". Итак. Кажется, что это C/C++ с небольшими отличиями.
1) вместо обычного расширения  .c или .cpp  - .m
2) вместо #include - #import/
3) вместо class - @interface в заголовочном файле и @implementation в основном. Чем-то такая конструкция напомнила pascal с его модулями unit. Но никак не ожидал подобное увидеть в C.
4) вместо static - "+". для nonstatic (то есть принадлежащих объектам, а не классам) членов - "-".

5) Конкатенация (слияние) строк - отдельная тема для разговора. Конструкции такие, как "string1"."string2" как в php или хотя бы "string1"+"string2" - как в javascript или C# не работают. Самый "простой" (без преобразования типов в NSMutableString или NSArray) вариант - вызов сообщения stringByAppendingString как пример -
NSString *str;
NSString *res;
...
res=[str stringByAppendingString:@"_"];

Второй вариант сцепления строк -

[NSString stringWithFormat:@"%@/%@/%@", one, two, three];
Третий вариант - написание собственной статичной функции:

+ (NSString *) append:(id) first, ...
{
    NSString * result = @"";
    id eachArg;
    va_list alist;
    if(first)
    {
     result = [result stringByAppendingString:first];
     va_start(alist, first);
     while (eachArg = va_arg(alist, id)) 
      result = [result stringByAppendingString:eachArg];
     va_end(alist);
    }
    return result;
}

Комментариев нет:

Отправить комментарий