Вопрос: Как определить текущую платформу?
Ответы:
- Can preprocessor directives be used to import different header files for Mac and iOS?
- Detect platform in Cocoa
- Detecting platform architecture within Cocoa app?
- Learn Objective-C: Conditional Compilation
Вопрос: Как определить текущая архитектура 32-bit или 64-bit?
Ответ:
#ifdef __LP64__
// 64-bit code
#else
// 32-bit code
#endif
Вопрос: Как объявить статическое свойство в классе?
Ответ:
@interface Model + (int) value; + (void) setValue:(int)val; @end @implementation Model static int value; + (int) value { @synchronized(self) { return value; } } + (void) setValue:(int)val { @synchronized(self) { value = val; } } @end
Вопрос: Как проверить строку на равенство?
Ответ:
if ([mystring isEqualToString:@"Johns"]){ //do some stuff in here }
Вопрос: Как написать статический конструктор?
Ответ:
+ (void) initialize {
if (self == [MyParentClass class]) {
// Once-only initializion
}
// Initialization for this class and any subclasses
}
Вопрос: Как проверить массив на наличие в нем строки NSString?
Ответ:
NSString *yourString = @"foo"; BOOL identicalStringFound = NO; for (NSString *someString in stringArray) { if ([someString isEqualToString:yourString]) { identicalStringFound = YES; break; } }
Вопрос: Как отсортировать массив объектов NSArray?
Ответ:
NSArray sortedArrayUsingComparator Tutorial
Вопрос: Как пользоваться блоками?
Ответ:
Introduction to Objective-C Blocks
Вопрос: Как преобразовать std::string в NSString?
Ответ:
NSString* mystring = [NSString stringWithUTF8String:stdstring.c_str()];
Вопрос: Как перекрыть getter или setter для свойства?
Ответ:
Интерфейс:
@interface Customer @property (nonatomic) NSString* name; @end
Реализация:
@implementation Customer @synthesize name = _name; //Must do this //Setter method - (void) setName:(NSString *)n { NSLog(@"Setting name to: %@", n); _name = [n uppercaseString]; } //Getter method - (NSString*) name { NSLog(@"Returning name: %@", _name); return _name; } - (void) test { self.name = @"Joan of arc"; NSLog(@"Name is %@", self.name); } @end
Вопрос: Что означают атрибуты свойств?
Ответ:
http://stackoverflow.com/questions/588866/whats-the-difference-between-the-atomic-and-nonatomic-attributes
Вопрос: Как реализовать конструктор для класса?
Ответ:
- (id)init
{
self = [super init];
if (self)
{
// superclass successfully initialized, further
// initialization happens here ...
}
return self;
}
Вопрос: Где посмотреть спецификаторы формата?
Ответ:
Вопрос: Как реализовать паттерн "наблюдатель" на Objective-C?
Ответ:
- http://stackoverflow.com/questions/7896646/how-to-pass-object-with-nsnotificationcenter
- http://sourcemaking.com/design_patterns/observer/cpp/3
- http://habrahabr.ru/post/126968/
- http://www.imaladec.com/story/nsnotificationcenter
- http://www.numbergrinder.com/2008/12/patterns-in-objective-c-observer-pattern/
- http://nshipster.com/nsnotification-and-nsnotificationcenter/
- http://www.raywenderlich.com/46988/ios-design-patterns
- http://www.cocoawithlove.com/2008/06/five-approaches-to-listening-observing.html
Вопрос: Как работать с потоками?
Ответ:
- http://ios.biomsoft.com/2011/09/22/zapusk-funkcii-v-parallelnom-potoke-rabota-s-potokami/
- http://stackoverflow.com/questions/17971717/how-to-wait-in-nsthread-until-some-event-occur-in-ios
- http://stackoverflow.com/questions/925468/threading-in-objective-c
- life@aslushnikov | "Only hate the road when you're missing home" (с) | Страница 3
- http://macbug.ru/cocoa/mthreadmanage
Вопрос: Как именовать методы в Objective-C?
Ответ:
- http://www.blogosfera.co.uk/2014/03/simple-rules-for-naming-methods-compatible-with-arc-naming-conventions/
- http://rypress.com/tutorials/objective-c/methods.html
Вопрос: Как преобразовать NSString в std::string?
Ответ:
// 1 NSString *foo = @"Foo"; std::string *bar = new std::string([foo UTF8String]); // 2 NSString *foo = @"Foo"; std::string bar([foo UTF8String)); // 3 - (void)exampleMethodWithString:(NSString*)str { // NOTE: if str is nil this will produce an empty C++ string // instead of dereferencing the NULL pointer from UTF8String. std::string cpp_str([str UTF8String], [str lengthOfBytesUsingEncoding:NSUTF8StringEncoding]); wrapped.ExampleMethod(cpp_str); }
Вопрос: Почему Interface type cannot be statically allocated?
Ответ:
"Statically allocated" in this case would mean that the memory for that object was allocated at compile-time. All objects in Obj-C, however, are allocated at runtime and accessed through pointers.
Вопрос: Как отправить POST запрос по HTTP?
Ответ:
- Posting data to url in Objective-C | MacPandit
- How to NSMutableArray value pass from NSObject to UIViewController in ios ?
Вопрос: Как реализовать деструктор для класса?
Ответ:
Вопрос: Как преобразовать целое число в строку?
Ответ:
NSString *number = [[NSString alloc] initWithFormat:@"%d", 123] NSString* myNewString = [NSString stringWithFormat:@"%d", myInt];
Вопрос: Как напечатать массив типа char?
Ответ:
size_t theLen = 1024; char theBuf[theLen]; wrapped.soap_sprint_fault(theBuf, theLen); printf("%s\n", theBuf); NSLog(@"%s", theBuf);
Вопрос: Что такое @synthesize?
Ответ:
"Команда сокращенного вызова @synthesize предписывает компилятору сгенерировать код, необходимый для доступа к экземплярным переменным."
Automatic Property Synthesis With Xcode 4.4 - Use Your Loaf
Вопрос: Зачем нужны атрибуты объявленных свойств (declared properties)?
Ответ:
"Атрибут nonatomic ускоряет работу акцессора: атомарные свойства нужны только при работе с множественными потоками (threads). Атрибут retain обеспечивает присвоение значения экземплярной переменной в порядке retain-release, а атрибут copy - в порядке copy-release."
Вопрос: Как прочитать приватную переменную класса?
Ответ:
@implementation NSCollectionView (displayedItems) - (NSMutableArray *)myDisplayedItems { return [self valueForKey:@"displayedItems"]; } @end
Вопрос: Как вывести в логе наименование функции?
Ответ: NSLog(@"%s:%d", __func__, __LINE__);