1日30分英語

習慣化するために

2012-12-01から1ヶ月間の記事一覧

P455-607 例外とエラー 並列プログラミング キー値コーディング

例外 例外の伝播 例外の伝播によって実行されない処理が発生したりする。 エラー処理 エラー・レスポンダチェーン willPresentError applicationWillPresentError 並列プログラミング 相互排除 条件付きロック NSRecursiveLock Grand Central Dispatch NSOpe…

P429-455 例題:簡易画像ビューア

ざっと読んだ。 これまでのテクニックを随所に使っていて面白い。 NSOpenPanelというクラスが面白い。MacOSXアプリもまた作ってみたい。 以前にニコ生タイムシフトダウンローダーで一回作ってみましたが。 詳解 Objective-C 2.0 第3版作者: 荻原剛志出版社/…

P395-429 アプリケーションの構造

リソースのローカライズ 言語名.lprojというフォルダに入れて管理する。 アプリケーションバンドル内のInfo.plist いろんな属性が設定されている。 NSBundleによるリソースへのアクセス -pathForResource: ofType: などで。 iOSでのリソースの拡張 ファイル…

P367-395 メッセージ送信のパターン

実行ループ GUIを持つアプリケーションは必ず実行ループを持つ。 各スレッドに実行ループがある。 実行ループへのアクセスはNSRunLoop メイン以外のスレッドでは自動で自動解放プールは作られない。 タイマオブジェクト タイマーを実行ループに登録する。 繰…

P354-367 ブロックオブジェクト

眠すぎて頭に入ってこなかった。 前回の範囲と合わせてもう一度ちゃんと読み返そうと思います。__blockでブロックオブジェクト間で値を共有できる変数を作れる、とか ブロックオブジェクト内にインスタンス変数があるときにそのブロックオブジェクトがコピー…

P339-354 ブロックオブジェクト

焦って読んでたから、あまり分からず。しかもこの章の途中でタイムアップ。 もう一度読もう。ブロックオブジェクトはコールバックみたいに使うのは便利なのが分かるんだけど、それ以外のときにどう使うの?という気持ちで読んでいるから頭に入ってこないんだ…

P321-339 オブジェクトのコピーと保存

オブジェクトのコピー コピーは3種類 変数への代入 浅いコピー 深いコピー copyWithZone 実際にコピー処理を行うメソッド。こいつを定義する必要がある。 アーカイブ 一回アーカイブ・アンアーカイブをやった事があるのだがいまいちピンとこなかった。むず…

P303-321 プロトコル

オブジェクトの役割や振る舞いを表すメソッドの集合。 プロトコルの継承 プロトコルは別のプロトコルを継承して作れる。複数継承できる。 プロトコルの前方宣言 実装部に@protocol XXXXと書く。(←今まで意識した事がなかった) プロトコルへの適合チェック …

P285-303 抽象クラスとクラスクラスタ

抽象クラス 特にコード上は他のクラスと変わらない。インスタンスも作れる。 クラスクラスタ 同じインターフェースを持ち、同じ機能を提供する複数のクラスの集合体。 基本的なクラスの多数がクラスクラスタ リファレンスにクラスクラスタと書かれてないのに…

P263-285 カテゴリ

カテゴリ 局所的なカテゴリ インターフェースに書いてない局所的メソッドが、定義より前方のコードで使えない問題で、メソッドの順番を逆にしたりしても無理な場合を解消できる。 ソースファイルの先頭に@interface クラス名(XXXXX), @implementation クラス…

P229-263 NSMutableData 配列 集合 辞書 数値ラッパー NSURL

知らなくて面白そうなメソッド NSArray firstObjectCommonWithArray: arrayByAddingObjectsFromArray: sortedArrayUsingSelector: makeObjectsPerformSelector: componentsJoinedByString: pathsMatchingExtensions: NSMutableArray addObjectsFromArray: re…

P219-229 不変・可変オブジェクト NSString NSMutableString NSData

オブジェクトには不変オブジェクトと可変オブジェクトがある。immutableとmutable。 mutableCopyメソッドで不変オブジェクトが可変オブジェクトを作って返せる。知らなかった。 Foundationフレームワークの重要なクラスの解説。知らなくて面白そうだったメソ…

P179-219 NSObjectクラスとランタイムシステム

ルートクラスの各メソッドについて。 インスタンスはisaと言うインスタンス変数を持ち、コレがクラスオブジェクトを指している メッセージを関数として実現できる。 速くなったりするが、柔軟性が失われる。 クラスオブジェクトもisaを持っていて、メタクラ…

P157-179 宣言プロパティ

インスタンス変数にない名前のプロパティを宣言するとインスタンス変数もつくられる。 @dynamicを書いてそのプロパティは自分でアクセサを書く事を明示できる。 実装部にプロパティを書ける。(←しかし何のために?) 属性 規定値はreadwrite, assign, atomic…

P137-157 ガーベジコレクション

ARCとは別に、ガーベジコレクションも用意されている。 コンパイラはccでもclangでも有効。 MacOS 10.5 Snow Leopard以降。iOSは対応していない。 循環参照があっても問題なくメモリを解放してくれる。 __weak でゼロ化をする事もできる。 循環参照が大丈夫…

P122-137 保持の循環と弱い参照

ARC使用時の話 保持の循環 オブジェクトの参照関係が循環すると、その循環の中のオブジェクトをうまく解放できない。 ライフタイム修飾子 __weakを使って解決する。 ライフタイム修飾子 __weak 弱い参照 __weakをつけた変数にオブジェクトを代入してもオブジ…

P105-122 メソッドファミリ @autoreleasepool

リファレンスカウンタの続き。 電卓のソース ループの中でコンビニエンスコンストラクタで作ったインスタンス(autoreleaseされたインスタンス)を使う場合NSAutoreleasePoolを使う具体例。 ARCに少し入った。 メソッドファミリ オブジェクトの生成・複製に…

P92-105 リファレンスカウンタ オーナーシップ

リファレンスカウンタの話。 オーナーシップの話など 改めて確認できた。下記のときは危険。 - (void)setMyValue:(id)obj { [myValue release]; myValue = [obj retain]; } myValueとobjが同じものを指していた場合に、最初のリリースでobjも解放してしまい…