12. Программирование на Objective-C. Протоколы, динамическая типизация, предупреждения, обработка исключений

Пример протокола:

#import <Foundation/Foundation.h>

@protocol MYProtocol <NSObject>
@required
- (void)exampleMethod;
@optional
- (void)optionalMethod;
@end

@interface MYClass : NSObject<MYProtocol>
- (void)exampleMethod;
@end

@implementation MYClass
- (void)exampleMethod
{
    NSLog(@"%i", (arc4random() % 3) + 1);
}
@end

int main(int argc, const char * argv[])
{
    @autoreleasepool
    {
        id theObject = [[MYClass alloc] init];
        @try {
            [theObject exampleMethod];
        }
        @catch (NSException *exception) {
            NSLog(@"Error is : << %@ >>", exception);
        }
        @finally {
            NSLog(@"Final");
        }
        
    }
    return 0;
}

В Xcode можно настраивать предупреждения:
  • Treat Warnings as Errors
  • Unused Variables
  • и др.