О блоге

Рейтинг
0.00
голосов: 0
Программирование на ObjectiveC для iOS (iPhone/iPod/iPad), MacOsX

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (1)

Работа с DMG файлами через терминал

Появилась необходимость работать с dmg файлами в MacOsX, но никакой документации на русском я не нашел. Поэтому решил написать эту статью, чтобы облегчить другим эту задачу.

dmg файл — это по сути образ диска, аналог iso файлов в windows. Они часто используются в качестве инсталярота программ. Именно для этой цели мне они и понадобились. Но как их создавать? Как их редактировать?


Читать дальше

Выполнение блока кода в определенном потоке

Когды Вы начинаете работать с блоками, то сразу возникает вопрос: «Есть блок кода, могу ли я просто выполнить его на определенном потоке?». Слава богу — ответ «Да», но Apple почему-то не дала простого способа сделать этого, что на Mac OS X, что на iOS. Однако ситуацию можно легко исправить. Как? Прошу под кат…



подробности

Singleton с помощью dispatch_once



Вы можете любить его, можете ненавидеть, но иногда он очень нужен вам в вашем приложении. Фактически, любое приложение для iOS и Mac OS X имеют как минимум один — UIApplication или NSApplication.

Итак, что же такое Singleton. Википедия формулирует так:


 Гарантирует, что у класса есть только один экземпляр, и предоставляет 
к нему глобальную точку доступа.


Или короче


Singleton - это класс, который имеет единственный экземпляр




подробности

Полный список директив компилятора Objective-C 2.0

Очень сложно найти полный список директив компилятора Objective-C в одном месте. Всем конечно известны @interface, @implementation, но есть и такие, как @dynamic и @encode которые встречают гораздо реже, и зачастую понимаются неправильно.

Вот их полный список, разъяснения приводятся под катом:

  • @class
  • @protocol @required @optional @end
  • @interface @public @package @protected @private @property @end
  • @implementation @synthesize @dynamic @end
  • @throw @try @catch @finally
  • @synchronized @autoreleasepool
  • @selector @encode
  • @compatibility_alias
  • @«string»



подробности и разъяснения

Выводим iPhone 3G из состояния "Белое яблоко"



Для разработки под iOs мне в руки попал iPhone 3G. Однако, сразу начать работать на нем не получилось. Он завис в состоянии «Белое яблоко», и никак из него не хотел выходить. Сегодня я поведаю историю о том, как вывести его из этого состояния.



приступим...

Создание синглетона в ObjectiveC

Часто при разработки некой функциональности, удобно ее оформить в виде синглетона. Это класс, который может иметь только один созданный объект. Реализовать синглетон в ObjectiveC можно следующим образом:

Объявление класса:
@interface FileSystem : NSObject
{    // переменные класса
}

+ (FileSystem*) getInst;    // метод, которые предоставляет доступ к объекту класса
- (void)        someMethod; // некий метод
@end


Читать дальше

Разбиение строки на токены в ObjectiveC

При работе со строками в ObjectiveC часто требуется разбить строку на токены, по какому-либо символу. Рассмотрим наиболее часто необходимые примеры использования.

Разбиение строки на слова:
NSString* sourceString = @"Some string";
NSArray* words = [ sourceString componentsSeparatedByString: @" " ];
// теперь words содержит: [ @"Some", @"string" ]


Разбиение строки по нескольким символам:
NSString* sourceString = @"Game-info/title";
NSArray* words = [ sourceString componentsSeparatedByCharactersInSet:
                      [ NSCharacterSet characterSetWithCharactersInString: @"-/" ]
                    ];
// теперь words содержит: [ @"Game", @"info", @"title" ]


Если вам нужно разбить строку на символы, то это можно сделать пробежав в цикле по символам строки и создав по строке на каждый символ:
int length = [sourceString length];
NSMutableArray* chars = [[NSMutableArray alloc] initWithCapacity: length ];
for( int i = 0; i < length; ++i )
{
    NSString* ch  = [ NSString stringWithFormat: @"%c", [ sourceString characterAtIndex: i ] ];
    [ chars addObject: ch ];
}
// теперь массив chars содержит строки с символами из начальной строки

Warning: Unknown: write failed: No space left on device (28) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php5) in Unknown on line 0