コメントTweet最近よく使っている省略記法を紹介する。これらを使うとなんとなく気分がいい。.(ドット)表記が可能になった。↓SomeClass.sharedInstance当然ながらさらにメソッドも重ねられる。SomeClass.sharedInstance.localNameXcodeではクラスメソッドの.表記は補完が効かないのが難点。それ以降のメソッドは補完してくれる。ここまで来ると補完できる。autoreleaseが不要になったので使いやすくなった。(2)selfクラスメソッド内でselfはクラス自身を指す。インスタンスの作成に使える。Takebayashi.Asia配列・ディクショナリ作成githubでソースコードを読んでて知った。mutableな配列・ディクショナリもサクっと書ける。-多くはgithubで他の人のコードを読んでて知ったもの。コードを読むことはアルゴリズムを読み解くだけでなくコーディングのトレンドもわかるなー。iOS6/OSX10.8から導入された。NSCodingのそれを指している。NSCodingのこと。ReferenceNSSecureCodingの定義はクラスメソッドが1つあるだけ。(BOOL)supportsSecureCoding;使い方の前に何故この新しいプロコトルが導入されたかというと、現状のNSCodingだと不正なオブジェクトのロードを防げないから。標準的な実装はこうなる。{...fail...}2行目でクラスチェックを行っているが実際には1行目でインスタンス化されていて既にその時点でクラスおよびインスタンスのイニシャライザは起動している。現状では仮に不正なクラスが読み込み対象のファイルに紛れ込んでもその初動を防ぐことができない。Reference先程の2行の代わりに1行でチェックとデコードを同時に行う。forKey:@"myKey"];もし(a)指定クラスがNSSecureCodingを実装している(b)指定クラスとロードするクラスが一致するのどちらかを満たさない場合は例外がスローされ、インスタンスの作成は行われない。これにより不正な振る舞いを防ぐことができる。decodeObjectforKey:と変らない)。NSSecureCodingが使われる。このNSSecureCodingを実装するには次のどちらか2つの条件を満たす必要がある。supportsSecureCodingをオーバーライドして、YESを返す必要がある。この辺り、NScoderの条件と合わせると若干複雑な感じはする。NSSecureCodingが導入されたのはXPC導入に伴うもので、iOSに関して言えばiOS6からXPCが導入された。このXPC導入に伴い、従来はアプリ内(1プロセス内)で完結していた動作がプロセス間での協調動作できるようになった。この為、従来の信頼できる自アプリ内の永続化データだけでなく、外部プロセスとの通信時に送られてくるデータの復元(decode)が必要になってきた。この対策としてNSSecureCodingを始めとする一連のAPIが導入された。Serviceを作ったり、直接アクセスできるのは今のところApple提供のライブラリだけ。一般開発者には公開されていない。このあたり次期iOS7でどうなるのかが非常に興味深い。-今のところ一般開発者が使う理由があまり思いつかないが、XPCが公開された時には必須スタイルになるのかもしれない。