dev — Cocoa Developers Club http://cocoadevelopers.club Открытый клуб iOS и OS X разработчиков Wed, 23 Nov 2016 12:04:01 +0000 ru-RU hourly 1 https://wordpress.org/?v=4.6.1 Сохранение пользовательских настроек с помощью NSUserDefaults http://cocoadevelopers.club/2015/06/nsuserdefaults/ http://cocoadevelopers.club/2015/06/nsuserdefaults/#respond Mon, 29 Jun 2015 07:53:18 +0000 http://cocoadevelopers.club/?p=464 Для хранения пользовательских настроек между запусками приложения, в Cocoa имеется класс NSUserDefaults. Каждому приложению доступен общий экземпляр класса NSUserDefaults. Доступ к этум экземпляру осуществляется с помощью вызова статического метода standardUserDefaults:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

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

NSUserDefaults может сохранять, в качестве значений параметров, основные типы: float, double, integer, boolean и объекты стандартных классов: NSData, NSString, NSNumber, NSDate,NSArray, NSDictionary. Объекты классов NSArray, NSDictionary также должны содержать только объекты перечисленных классов. Если необходимо сохранить объекты других типов, используйте метод archivedDataWithRootObject: класса NSKeyedArchiver для получения экземпляра класса NSData NSUserDefaults хранит значения в базе данных параметров пользователя. База данных создается автоматически для каждого пользователя. Для того, чтобы постоянно не дергать базу данных при чтении и изменении параметров, NSUserDefaults использует кэширование.NSUserDefaults возвращаемые неизменяемые объекты, даже если вы устанавливали изменяемый объект в качестве значения.… Читать дальше →

]]>
http://cocoadevelopers.club/2015/06/nsuserdefaults/feed/ 0
Класс NSDate http://cocoadevelopers.club/2015/06/nsdate/ http://cocoadevelopers.club/2015/06/nsdate/#respond Mon, 15 Jun 2015 09:20:38 +0000 http://cocoadevelopers.club/?p=416 NSDate используется для создания, сравнения, представления дат, расчета временных интервалов.

NSDate — это абстрактный класс, представляющий из себя кластер (группу) классов. Единственным публичным классом данного кластера является NSDate.

Объекты, созданные с помощью NSDate, называют «объекты дат». Экземпляры NSDate являются неизменяемыми.

Класс NSDate — основа для произвольных календарных представлений.

Единственный примитивный метод — timeIntervalSinceReferenceDate. Метод служит основой для всех остальных методов интерфейса NSDate. Данный метод возвращает значение времени относительно абсолютной справочной даты: Первая минута, 1 января 2001, по Гринвичу.

NSDate моделирует смену Юлианского календаря на Григорианский в октябре 1582. Календарные вычисления, выполняемые вместе с NSCalendar, учитывают этот переход. Однако отметьте, что в некоторых местах Григорианский календарь приняли в другое время. Например, Великобритания перешла на Григорианский календарь только в сентябре 1752.

NSDate принимает следующие протоколы:

  • NSCopying
  • NSSecureCoding
  • NSObject (NSObject)

Подклассы

Основная причина создания подклассов NSDate — создание методов работающих с другими календарными системами. У вас могут быть и другие причины для создания подклассов.… Читать дальше →

]]>
http://cocoadevelopers.club/2015/06/nsdate/feed/ 0
instancetype в Objective-C http://cocoadevelopers.club/2015/06/instancetype-objective-c/ http://cocoadevelopers.club/2015/06/instancetype-objective-c/#respond Wed, 10 Jun 2015 09:43:28 +0000 http://cocoadevelopers.club/?p=376 В версию 5.0 Xcode (LLVM 5/Clang 5) была добавлена поддержка нового ключевого слова для Objective-C — «instancetype».

Для чего оно нужно?

В соответствии с принятыми в Cocoa соглашениями наименования методов, Objective-C методы с названиями начинающимися с «init», «alloc», «copy», а также методы с названиями «new», «autorelease», «retain», «self» должны возвращать экземпляр класса которому они принадлежат. Такие методы возвращают связанный тип. Послав сообщение одному из этих методов, в ответ мы получим экземпляр класса, которому принадлежит метод.

Рассмотрим небольшой пример:

// Test Class 
@interface TestClass: NSObject
+(id) instance;
@end

@implementation TestClass
+ (id) instance {
    return [[self alloc] init];
}
@end

// Other Test Class
@interface OtherTestClass: TestClass
-(void) doSomething;
@end

@implementation OtherTestClass
-(void) doSomething {
    // ...
}
@end

В примере мы создали класс «TestClass», который реализует метод «instance», и унаследованный от него класс «OtherTestClass», реализующий метод «doSomething».… Читать дальше →

]]>
http://cocoadevelopers.club/2015/06/instancetype-objective-c/feed/ 0
Apple ввела единую программу для разработчиков http://cocoadevelopers.club/2015/06/new-apple-developer-program/ http://cocoadevelopers.club/2015/06/new-apple-developer-program/#respond Tue, 09 Jun 2015 09:00:06 +0000 http://cocoadevelopers.club/?p=345 2015-06-09_103635

Компания Apple решила объединить программы разработчиков для OS X, iOS и расширений Safari. Теперь подписка приобретается один раз и дает возможность вести разработку и публикацию приложений для разных платформ.

«Новая программа Apple для разработчиков объединит все, что вам нужно для создания, распространения и управления вашими приложениями на всех платформах Apple», — сообщается на обновленном сайте для разработчиков.… Читать дальше →

]]>
http://cocoadevelopers.club/2015/06/new-apple-developer-program/feed/ 0