XCode4.4 のコーディング

2012/07/26
今日からライオンでも使える!XCODE4.4 MODERN OBJECTIVE-C SYNTAXでコードをきれいにする方法」を参考に、早速試してみました。 ---2012/09/06追記 参考:Objective-C Literals

@synthesize の省略

@property で宣言した変数は、自動的に @synthesizeをコード補完してくれます。
@property (nonatomic) NSString *name;
@property (nonatomic) float time;

... @synthesize がいらない ...

- (void)bind {
   _name = @"Mike";
   _time = 10.0f;
}
これは省略もそうですが、コードの統一感という点で非常に大きな意味があると思います。 今までだと、アンダースコアをつけなかったり適当にコーディングできましたから。

NSArray, NSMutableArrayの記述

NSArray は @[...] で、NSMutableArray は [@[...], mutableCopy] で記述
@property (nonatomic) NSString *name;
@property (nonatomic) float time;

- (void)bind {
    NSArray *values1 = @[
                       @"1_setting01.png",
                       @"1_setting02.png",
                       @"1_setting03.png",
                       @"1_setting04.png",
    ];
    NSMutableArray *values2 = [@[
                       @"1_setting01.png",
                       @"1_setting02.png",
                       @"1_setting03.png",
                       @"1_setting04.png",
                       ]
                       mutableCopy];
}
---2012/09/06追記 Object Subscripting ってのが追加されているようです。 今まで、NSArray や NSDictionary ではのキーによるデータ取得はC言語のような(?)記述では取得できませんでしたが、これもできるようになりました。
  int cArray[] = { 100, 200, 300 };
   NSArray *nsArray = @[ @100, @200, @300 ];

   cArray[1]; // 200
   nsArray[1]; // @200

    NSMutableArray *nsArray = [@[ @100, @200, @300 ] mutableCopy];
    nsarray[1] = @33;
これは、かなり嬉しい構文ではないでしょうか?

リテラル値の記述

int,float を NSNumber に変換とか、リテラル値の変換を省略できるようになりました。
- (void)update:(int)score :(float)time {
    NSMutableDictionary *value = [NSMutableDictionary dictionary];
    [value setValue:@(score) forKey:@"score"];
    [value setValue:@(time) forKey:@"time"];
}

NSDictionary, NSMutableDictionary の記述

さらに、NSMutableDictionary を省略すると
- (void)update:(int)score :(float)time {
    NSMutableDictionary *test = [@{@"score":@(score), @"time":@(time)} mutableCopy];
}
AWS CLI と jq でインスタンス一覧を整形して表示
React と Laravel7 のプロジェクトを作成する
Homebrewインストール-2020年版
3直線で囲まれた範囲塗りつぶし
PuLP で線形最適化問題を解く
カスタムのペジネーションを作る
node-sass を使って sass をコンパイルする
Log ファサードでSQLログを分離して書き出す
いちから始める Docker - 複数のコンテナを使う - (2020年)
いちから始める Docker - docker-compose を使う - (2020年)
AWS ECR を使ってみる
Laravel7 でマルチ認証
Mac に AWS Client を設定する
Laravel 7 リリース
v-html でHTML表示する
Laravel で Vue コンポーネントを使う
Laravel で Nuxt.js を使ってみる(Docker環境)
いちから始める Docker -コンテナをビルド- (2020年)
いちから始める Docker -起動してみる- (2020年)
Mac で MySQL(8系)
composer で vendor がインストールできない
Eloquent の日付を Carbon で扱う
webpack 4 入門(npm編)
[Mac]容量を減らす
DIコンテナはじめ
freee SDKを Laravel で使ってみる
freee API を使ってみる
Segueを利用しない画面遷移
Xcode11.3 で XVim2 を利用する
Codable で JSONを読み込み
Webpack入門(yarn編)
MacからLaradock PostgreSQLで接続エラー
Dockerで不要なコンテナ・イメージを削除
Mac で Laradock の構築
yarn インストール&プロジェクト作成
Laravel 6.x 構築(Homestead編)
Composer インストール
nvm インストール
npm install が Mac でエラー
HTMLタグでカーソルが同時処理(ミラーリング)されてしまう
DI(依存性注入)
[Ubuntu]Let's Encryptで無料の証明書を利用する
[Apache]Apache2.4のアクセス制限が変更
[Ubuntu]rootのログインとsudo権限追加
タミヤ マイコンロボット工作セットをMacに接続してみた
pgAdimn4 でブラウザで開けなくなる
Java8 を HomebrewとjEnvで構築
Android Studio環境構築 2019
ロケールの再構築
vagrant グループに Apacheを追加