▼iPhoneのアプリケーションスタイルやユーザーインターフェースの一覧どういう分野に属するかというのをちゃんと把握しておくようにApple側が推奨しているデザインパターンみたいなのがあって、それに合致しているかを見るのだそう。精度を上げたければ、イベントから発生するアプリを軽くするか、マルチスレッド化する必要がある。▼サウンドの再生(AVAudioPlayerクラス)○簡易的な再生のサポート。"で生成した文字列は、NSStringのインスタンスなので、NSMutableStringに入れることはできない(その場合は、stringWithStringというメソッドを用いて代入する)○stringWithFormatやNSLogはprintfとほぼ同様の使い方ができる。NSString型のようなオブジェクトを埋め込む場合には、%sではなく、%@を使う。Builderを使う場合は、デリゲートメソッドを持つクラスを指定のクラス(アプリケーションデリゲートであれば、UIApplication)にデリゲートのオブジェクトとして登録しないとメソッドは呼ばれない○アプリが起動されたとき、非アクティブになったとき、再びアクティブになったとき、終了したときなど通知が行われ、デリゲートのメソッドが呼ばれる○デリゲートは、実行時に差し替えが可能である○ウェブビューや、サウンドなどにもデリゲートがある。zone;のように単純に代入してはいけない。今まで、timeZoneが参照していたオブジェクトを指すものがなくなり、メモリーリークしてしまうため。}のように今まで指していたものをreleaseし、引数で受け取ったものをretainする必要がある。○プロパティを指定する際、属性に単純代入であれば、assignを、インスタンスをretainメソッドで保持する場合はretainを指定する(上記の「メモリ管理の詳細」の最後の項目を合わせて確認)○指定しなければスレッドセーフだが、nonatomicを指定すると排他制御されない。変数に指定するプロトコル○変数にもプロトコルを指定できる。delegate;⇒どんなクラスでもいいが、AVAudioPlayerDelegateプロトコルを採用しているオブジェクトを指定せよという意味になる。Graphicsの略で、グラフィックス関連の構造体や関数にはCGという文字が先頭についている。animationImages;2.animationDurationプロパティでアニメの長さ、animationRepeatCountでアニメの繰り返し回数を設定し、statAnimatingメソッドを呼ぶことでアニメーションが開始される。▼アニメーションについて(コンポーネントのアニメーション)○簡単なアニメーションならば、ビュークラスなどにメソッドが追加されて簡単に実現できるようになっている。transform(座標変換)だけ○transformの座標変換は、アフィン変換のための行列だが、専用の関数で値をセットするので、詳しく知らなくてよい。⇒CGAffinTransformMakeRotation(回転)や、CGAffineTransformScale(拡大縮小)など○アフィン変換が変換済みか否かは、CGAffineTransformIsIdentity関数でわかる。○ビューのアニメーションの時間を変更する場合はsetAnimationDuration:をアニメーションカーブ(アニメーションの遷移速度)を変更する場合はsetAnimationCurve:をアニメーションブロック内で呼ぶ。アニメーションのカーブは、列挙型の4つの方法から1つ選択。○トランジッションアニメは、アニメーションブロック内で画像の自前でタイマーなどを使って差し替えが必要。外側とは判定されず、指一本分程度はなして、やっと外側と判定される。continuous;で設定できる。boolなどオブジェクトでないものは登録できない。登録されている要素すべてに対してreleaseが自動で行われる(あらゆる配列のメソッドで同様の仕様になっている)○NSNumberのNumberWithXxx:というクラスメソッドを使って、どの数値型でも代入可能。引数のNSSetというのは、オブジェクトの集合クラスオブジェクト自体は、UITouchというクラスのインスタンスである。第2引数は、イベントの発生時刻や、タッチ情報などを含んでいる。▼タイマについて○生成済みのタイマの間隔を変更する方法ないので、いったん止めてから再生成する。▼スリープについて○iPhoneは、ユーザーがしばらくいじらないと、自動でスリープするが、これをしたくない場合は、UIApplicationのidleTimerDisabledプロパティをYESにしておくとよい。○IBでNibファイルを読み込んでメモリ上にインスタンスが復元された直後に、awakeFromNibという関数が呼ばれる。awakeFromNibメソッド上で、アプリケーションの初期化処理を書くのが作法になっている。3.初期化完了してawakeFormNibという手順をとるので、initでアプリの初期化を実行すると、アウトレットにつながれている他のインスタンスがallocさえされていないという状況も起こりうる。initでの初期化は早すぎるしかも、initメソッドでインスタンスの設定を行っても、Nibファイルの内容で上書きされてしまうので、無意味になってしまう。表示フォントが変更される。▼アラート○アクションシートに似ているが、アクションシートは下からスライドして表示される⇒ツールバーの補助的な意味合いが強く感じられるこれに対し、アラートは中央に表示される。○アラートのテキストは長くなるとスクロールがつき、ボタンが多くなると縦に並ぶ○アラートのインスタンスも表示することでiPhoneOS側に保持されるので、アプリ側はすぐにreleaseしてよい。○カテゴリを使ってUIViewにコードを追加する方法がある。UIViewのソースはないが、そのような場合にもコードを追加することができる。▼ビューの反応について○ツールバーやピッカービューはalphaプロパティを0にすると、ビューの位置をタッチしてもそのビューは反応しなくなる。同じビューの見わけかた○UIViewにタグがある。設定値の取得メソッドで値を取り出すことができる。読み込みしても値を取得できない。○何も指定しないと横幅が980ピクセルあるものとしてHTMLのレイアウトを行う⇒縮小表示されてしまうので、HTMLのMETAタグのviewportを使って画面の横幅のピクセル数を指定するとよい○HTMLファイルをリソースとして読み込む場合は、NSURLRequestをウェブビューに与えて表示。○実装次第ではHTML側をトリガーにObjective-C(プログラム側)を制御できる⇒ウェブページ読み込み事前確認のデリゲートメソッドを使って、特定の文字列を読み取ってメソッドを呼ぶ○stringByEvaluatingJavaScriptFromString:で現在のコンテンツに対して文字列で与えたJavaScriptを実行可能。実行時間は5秒、メモリ使用量は最大10MB。(ざわざわ)電話番号を入力し、下のボタンを押すと、SMSに認証コードが送られますSMSに認証コードを送る電話音声で認証コードを送るキャンセル不正な入力です。認証キャンセルWIKIの操作を続ける認証コードが届かない場合は。