koogawa blog

iOS、Android、foursquareに関する話題

モダンなObjective-Cの書き方メモ

ナウでヤングな書き方をいっつも忘れちゃうので、自分用にメモしておきますc⌒っ゚д゚)っφ メモメモ...

配列

NSArray *array = @[@"a", @"b", @"c"];

NSMutableArray *array = [@[@"a", @"b", @"c"] mutableCopy];
NSString *string = array[0]; // "a"
array[0] = @"newString";

辞書

NSDictionary *dic = @{@"key1": @"val1",
                      @"key2": @"val2",
                      @"key3": @"val3"};

NSMutableDictionary *dic = [@{@"key1": @"val1",
                              @"key2": @"val2",
                              @"key3": @"val3"}
                            mutableCopy];
NSString *str = dic[@"key1"]; // "val1"
dic[@"key1"] = @"newValue";

NSNumber

NSNumber *intNumber = @123;
 
NSNumber *longNumber = @123L;
 
NSNumber *floatNumber = @12.34f;
NSNumber *doubleNumber = @56.78;
 
NSNumber *boolNumber = @YES;
NSNumber *boolNumber = @NO;

NSNumber *sumNumber = @(1 + 2 + 3);

インスタンス変数の宣言

最近はヘッダファイルではなく、実装ファイルでやるのがモダン。

//  Copyright (c) 2014 Kosuke Ogawa. All rights reserved.
//

#import "HogeObject.h"

@implementation HogeObject
{
    NSString *_hogeString;
}

一括コンバート

[Edit] > [Refactor] > [Convert to Modern Objective-C Syntax…] で、ソースファイルをモダンな書き方に一括変換することができる。(変換したいファイルを個別に選択できる)

参考書籍

あわせて聴きたい

https://itunes.apple.com/jp/album/bi-nuno-modern.../id409100425?i=409100431&uo=4&at=10l8JW&ct=hatenablog