『iPhone SDKの教科書』まとめ

2010. 03. 11
これまで勉強してきた『iPhone SDKの教科書』についてのまとめです。

本書と当サイトの記事の関係は以下の通りです。

第1部 iPhoneアプリケーション開発・準備編
CHAPTER 1 iPhoneiPhone OSの概要
CHAPTER 2 iPhone SDKiPhone App開発の下準備
Apple IDの取得
iPhone Developer Connectionの登録
iPhone SDKのインストール
iPhone Developer Programの登録(1)
iPhone Developer Programの登録(2)
CHAPTER 3 Xcode新規プロジェクトのテンプレート
Xcodeのプロジェクトウィンドウ
Xcodeのグループとファイル
Xcodeのテキストエディタ
Xcodeのプロパティリストエディタ
CHAPTER 4 Interface BuilderInterface Builder
CHAPTER 5 iPhone Simulator 
CHAPTER 6 Instruments 
第2部 iPhoneアプリケーション開発・基礎編
CHAPTER 1 C言語C言語のメモ書き
CHAPTER 2 オブジェクト指向プログラミングオブジェクト指向プログラミングのメモ書き
CHAPTER 3 Objective-C言語Objective-C言語のメモ書き(1)
Objective-C言語のメモ書き(2)
CHAPTER 4 カウンターの概要カウンターを作ってみた

まず動かしてみてから考える(3)
CHAPTER 5 カウンターの基本要素
CHAPTER 6 カウンターの発展
第3部 iPhoneアプリケーション開発・応用編
CHAPTER 1 スマッシュ
~タイマーとアニメーション
スマッシュを作ってみた(1)
Core Audioテクノロジーの概要
スマッシュを作ってみた(2)
CHAPTER 2 バランス~加速度センサーと物理法則バランスを作ってみた
CHAPTER 3 クロック~時刻とタッチ処理クロックを作ってみた(1)
クロックを作ってみた(2)
CHAPTER 4 エイジ~日付と多言語対応エイジを作ってみた
CHAPTER 5 パイル~カメラと画像処理パイルを作ってみた

●『スマッシュ』の内容

ステータスバーの消去Info.plistプロパティリストとnibファイルの編集
タイマーの作成NSTimerクラスで一定時間間隔で画像オブジェクトを動かす
乱数によるランダム移動rand関数で乱数を発生し、CGPointクラスに移動座標を送る
画像オブジェクトの移動UIViewクラスでの簡易アニメーション
効果音の再生System Sound Serviceを使った効果音の再生とバイブレーションの発生

●バランスの内容

加速度センサによる画像
オブジェクトの移動
UIAccelerometerクラスで加速度を検出し、CGPointクラスに移動座標
を送る
透明度のアニメーションUIViewクラスでの簡易アニメーション
効果音の再生System Sound Serviceを使った効果音の再生とバイブレーションの発生
自動ロックの禁止UIApplicationクラスのidleTimerDisabledによる自動ロック解除

●クロックの内容

タイマーの作成NSTimerクラスで一定時間間隔で画像オブジェクトを動かす
時刻の取得NSDate、NSCalendar、NSDateComponentsクラスで現在時刻を得る
画像オブジェクトの回転CGAffineTransformクラスにより、経時変化による回転座標を得る
アラーム機能AVAudioPlayerクラスを使ったループ再生
タッチ座標の取得透明ボタンを設置し、UIEventクラスで拾ったイベント情報をUITouch
クラスに送り、CGPointクラスで座標を得る 
自動ロックの禁止UIApplicationクラスのidleTimerDisabledによる自動ロック解除
環境設定の保存NSUserDefaultsクラスを使い、アラーム時刻を保存する

●エイジの内容

日付の取得と任意期間の
計算 
NSDate、NSCalendar、NSDateComponentsクラスで現在時刻を得て、
NSDateComponentsクラスで期間の計算を行う 
nibファイルとアイコンの
ローカライズ
nibファイルの『情報』を開き、『一般』タブからローカリゼーション
の追加を行う 
コード内テキストの
ローカライズ 
NSLocalizedString関数を使ったテキストの置換

●パイルの内容

イメージピッカーの処理UIImagePickerControllerクラスにより、カメラやフォトライブラリから
処理画像を得る 
画像の合成処理UIGraphics~ImageContext関数でグラフィックコンテキストを作成し、
CGContextクラスで合成処理を行う 
アラートの表示と処理UIAlertViewクラスを使ってアラートの表示と処理を行う

●『iPhone SDKの教科書』の総評

簡易とはいえ、C言語の解説からObjective-C言語の解説、サンプルコードを使った実践と繋がる入門書としてお勧めできます。

ただ、第2部までは丁寧に説明されているのですが、第3部以降は急に敷居が高くなります。

本文中での解説も少なく、ネットで情報収集したり、他書を参考にしなければ理解できない内容が多く、これ一冊あれば・・・とは言い難いものがあります。

最初の一歩として位置付け、分からない部分は他書などで補うという使い方になると思います。



参考文献

akaligue/iPhone SDKの教科書

iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩
(2009/03/18)
赤松 正行

商品詳細を見る

パイルを作ってみた

2010. 03. 10
●ビューアイテムの作成

343ページ)

Backgroundで指定する黒は、パレットでは『Licorice』という名前になっています。

344ページ)

ツールバーの4つのアイコンのイメージファイルは次の通りです。

Save.pngPhotoLibrary.pngCamera.pngClear.png

342ページでステータスバーを黒くしましたが、このページ途中から元の色に戻っています。

実際、nibファイル上でステータスバーを黒にしても、iPhone Simulatorおよび実機でも黒くならず、ひょっとしてと思いMainWindow.xibも黒にしてみましたが変わりませんでした。

ちなみに公開されているサンプルコードでは、nibファイルでもグレーのままでした。

理由は分かりませんが、Pile-info.plistで変更すれば解決することが分かりました。

リスト最下段を選択し、『Key:Status bar style、Value:Opaque black style』を追加すると(例えnibファイルでステータスバーをグレーにしても)ステータスバーを黒にできます。

199

ついでと言ってはなんですが、サンプルコードはアプリケーションのアイコンが非光沢なので、『Key:Icon already includes gloss and bevel effects、Value:(チェック)』も追加するといいかもです。

345ページ)

バランスを作ってみた』でも話しましたが、イメージビュー設置時のx/y座標が左上角ではなく、画像の中心座標を示していますので、『x:10、y:8』ではなく、『x:160、y:208』になります。

Backgroundの色は『Tungsten』になります。

●イメージピッカーの処理

UIImagePickerControllerクラスはカメラデバイスへのアクセスを提供するもので、撮影後の画像処理やフォトライブラリとの連携も行えます。

UIImagePickerControllerクラスの利用にはデリゲートを必要とし、またカメラデバイスが利用可能かどうかの確認を行う必要が有ります。

iOSアプリケーションプログラミングガイドの『カメラによる写真の撮影』においても、UIImagePickerControllerDelegateとUINavigationControllerDelegateを設定するようになっています。

349ページ)

画像の消去/保存時のアラート表示用にUIAlertViewDelegateも一緒に追加しています(カメラデバイスの利用にあたって、UIAlertViewDelegateを追加している訳ではありません。352ページでUIAlertViewDelegateを追加しようと言っているので、コードの引用ミスかもしれません)。

カメラの有無を確認するisSourceTypeAvailable:メソッドの引数であるUIImagePickerControllerSourceTypeは3種類あります。

UIImagePickerControllerSourceTypePhotoLibraryフォトライブラリから画像を選択します
UIImagePickerControllerSourceTypeCameraカメラで撮影し、新規に画像を得ます
UIImagePickerControllerSourceTypeSavedPhotoAlbumカメラがある場合はカメラロールから、無い
場合はフォトライブラリから画像を選択します

●画像の合成処理

350ページ)

『グラフィックスコンテキストは画像を描くキャンバス』とありますが、いまいちティンとこなくて調べたところ『画面分のメモリ領域を確保してそこにオフスクリーン描画する』とあり、フレームバッファみたいなものと思って良さそうです(多分)。

この辺のimagePickerControllerメソッドに関しては、動作は追えるんですけど内容が理解できてないので保留にします。



長らくやってまいりました『iPhone SDKの教科書』をやってみたシリーズ。

最後がすごく中途半端な終わり方ですが、半日調べて理解できなかったのでちかたないということで・・・

この後、復習も兼ねてもう一度頭から読み返し、情報の整理をしたいと思います。
(自分でもどこに何が書いてあるか探せなくなっているので)



参考文献

iOSアプリケーションプログラミングガイド

UIImagePickerController Class Reference

UIKit Function Reference

福井高専IT研究会OfficialWiki

マイコミジャーナル/実践!iPhoneアプリ開発(3)/カメラアプリの作り方(3)写真を縮小して表示する

iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩
(2009/03/18)
赤松 正行

商品詳細を見る

エイジを作ってみた

2010. 03. 09
●ビューアイテムの作成

起動画像のDefault.pngを流用する場合、ビューアイテムの座標がずれると変なので調べてみました。

195

XYWHTextLayoutFontColor/Text
Label1602028040BirthdayCenter (Helvetica, 17.0)(Licorice)
Date Picker160148(320)(216)----
Label16027628040AgeCenter(Helvetica, 17.0)Silver
Label1603362808012345CenterHelvetica, 96.0Mercury
Segmented Control160419280(44)----

●日付の期間の処理

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSCalendarクラスのgregorianインスタンスの生成と初期化を行っています。
initWithCalendarIdentifierの引数はNSString型の文字列で、NSLocale Calendar Keysで定義されています。

NSGregorianCalendarグレゴリオ暦
NSBuddhistCalendar仏滅紀元(仏暦)
NSChineseCalendar中国暦
NSHebrewCalendarユダヤ暦
NSIslamicCalendarヒジュラ暦(イスラム暦)
NSIslamicCivilCalendar(調べたけどよく分からない)
NSJapaneseCalendar日本の暦(和暦)

315ページで、『デフォルトのデイトピッカーの日付は、何故か2008年10月26日になっている』とありますが、私が試した時は2010年3月8日になりました。

おそらくプロジェクト作成日か何かを拾っていると思われます。

●xibファイルのローカライズ

iPhone Simulatorを日本語環境に設定していた人は気付くと思いますが、ローカライズする前(英語環境のみ)にエイジを走らせた場合、デイトピッカーは日本語表記になります。

196

デイトピッカーは(例えnibファイルの設定でLocaleが『英語(アメリカ合衆国)』であっても)iPhone Simulatorもしくはデバイスの言語環境の書式設定が反映されます。

従ってローカライズに対応した後でも、『言語:英語、書式:日本』であれば

197

ラベルの表記は英語、デイトピッカーは日本語になり、逆もまた然りです。

198

つまり、
・nibファイルのローカリゼーションは言語環境の『言語』設定に因る
・デイトピッカーは言語設定に関係無く『書式』設定に因る
ことになります。



参考文献

NSCalendar Class Reference

NSLocale Class Reference

NSDateFormatter Class Reference

Data Formatting Programming Guide for Cocoa

iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩
(2009/03/18)
赤松 正行

商品詳細を見る

基礎からのiOS SDK基礎からのiOS SDK
(2010/10/09)
鶴薗 賢吾、松浦 健一郎 他

商品詳細を見る

クロックを作ってみた(2)

2010. 03. 07
●ビューの回転

3x3行列のアフィン変換は二次元平面での回転、拡大縮小、平行移動する方法です。

CGAffineTransformMakeメソッドは、回転や拡大縮小などの座標変換した行列のCGAffineTransform構造体を生成して返します。

CGAffineTransformMake6つの引数でアフィン変換行列を作ります
CGAffineTransformMakeRotation角度(ラジアン単位)を引数にビューを回転させます
CGAffineTransformMakeScalex、yの拡大率を引数に、ビューを拡大縮小させます 
CGAffineTransformMakeTranslationx、yのピクセル数を引数に、ビューを平行移動させます

●アラーム機能の追加

章末のコードリストには有りますが、説明の本文中にsetAlarmItemsメソッドの宣言が抜けていますので、追加しましょう。

- (void)setAlarmItems;

●タッチ座標の取得

NSSet *touches = [event touchesForView:sender];

UIEventクラスのインスタンスメソッドは3つあります。

- allTouchesレシーバに関連付けられた全てのタッチオブジェクトを返します
- touchesForView:特定ビューのタッチオブジェクトをレシーバに返します
- touchesForWindows:特定ウィンドウのタッチオブジェクトをレシーバに返します

ここではAlarmHandの操作、すなわちViewに対するTouch DownおよびTouch Drag Inside双方のイベントをNSSetクラスのtouches変数に返します。

NSSetクラスはオブジェクトの集合を表すクラスで、複数イベントを取り纏めるものです。

UITouch *touch = [touches anyObject];

複数イベントが格納されているtouchesから、anyObjectメソッドでイベントを1つ拾い上げ、タッチイベントの情報(タップ回数や座標など)をUITouchクラスのtouch変数に渡します。

CGPoint touchPoint = [touch locationInView:sender];

タッチイベントの情報からlocationInViewメソッドで、ビューの座標をtouchPoint変数に返します。

●アラーム音の準備

これまでのスマッシュバランスでは、UFOの爆発音やボールがフレームに当たった際の衝突音というSEでしたので、実装の容易なSystem Sound Services(AudioToolbox.frameworkのAudioServices.h)を利用していました。

今回は時計のアラーム機能ですので、止めるまでループ再生を行う都合上System Sound Servicesを使えませんので、AV AudioPlayerクラスを使っています。

Core Audio系サービスの中で、Objective-Cインターフェイスで扱える比較的簡易な方法です。

ステレオの定位や正確な同期、ストリーム再生はできませんが、ループ再生や複数サウンドの同時再生などが可能です。

alarmPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];

[AVAudioPlayer alloc]でAVAudioPlayerのインスタンスを生成し、initWithContentsOfURL:urlで先に設定したアラーム用オーディオファイルの場所を渡します。

error:nilは、初期化に失敗した際のエラーコードを返します。

●ユーザ・デフォルトの処理

NSUserDefaultsクラスは、アプリケーション終了後も設定値を保持するオートセーブ機能のようなニュアンスで書かれていますが、どちらかと言うとアプリケーションの環境設定として使われます。

登録内容はプロパティリスト形式で保存されます。

あまり詳しくないプロパティリストの解説は『Xcodeのプロパティリストエディタ』を参照してください

このプロパティリストの保存先は、tAkatronixさんの『[iPhone]設定値を保存する NSUserDefaults』に説明されています。

ちなみに、今回のクロックのプロパティリストはこうなっています。

194

ユーザデフォルトのインスタンスから『- ~ForKey:』で設定値が取得できます。

- arrayForKey:通常配列(NSArray)を取得します
- boolForKey:ブール値(BOOL)を取得します
- dataForKey:データオブジェクト(NSData)を取得します
- dictionaryForKey:連想配列オブジェクト(NSDictionary)を取得します
- floatForKey:単精度浮動小数点実数値(float)を取得します
- integerForKey:整数値(NSInteger)を取得します
- objectForKey:オブジェクト(id)を取得します
- stringArrayForKey:文字列配列(NSArray)を取得します
- stringForKey:文字列を(NSString)取得します
- doubleForKey:倍精度浮動小数点実数値(double)を取得します

値の設定には『- set~:forKey:』を使います。

- setBool:forKey:ブール値(BOOL)を設定します
- setFloat:forKey:単精度浮動小数点実数値(float)を設定します
- setInteger:forKey:整数値(NSInteger)を設定します
- setObject:forKey:オブジェクト(id)を設定します
- setDouble:forKey:倍精度浮動小数点実数値(double)を設定します

※2010.4.12修正
『設定』とすべきところを『取得』と記載していましたので修正しました

環境設定値を保存するにあたり、ビューが閉じた際のメソッド(viewWillDisappear)を追加していますが、ビューイベントに対するメソッドは他にも有ります。

- viewWillAppear:ビューが表示する前の処理
- viewDidAppear:ビューが表示された後の処理
- viewWillDisappear:ビューが非表示または解放になる前の処理
- viewDidDisappear:ビューが非表示または解放された後の処理

環境設定値の初期化に際し、NSUserDefaultsクラスのregisterDefaults:メソッドを使っていますが、引数がNSDictionaryクラスのオブジェクトになっています。

NSDictionaryは配列の一種ですが、
・配列を構成する要素を連番で管理するものを通常配列(NSArray)
・キーワードを目印にして管理するものを連想配列(NSDictionary)
と呼びます。

環境設定値はキーとキー値を保存したいので連想配列を使います。

また今回の環境設定値は、アラームのON/OFFと設定時刻で随時変更されるものですので、固定値用のNSDictionaryではなく、可変長のNSMutableDictionaryを使います。

 通常配列連想配列
固定NSArrayNSDictionary
可変NSMutableArrayNSMutableDictionary

NSMutableDictionaryへの要素の追加

- setObject:forKey:オブジェクトのキー(id)と値(id)のペアを追加します
- setValue:forKey:文字列のキー(NSString)とオブジェクトの値(id)のペアを追加します
- addEntriesFromDictionary:他の辞書(NSDictionary)を追加します。
キーが同じ場合は値が上書きされます。 
- setDictionary:他の辞書(NSDictionary)を設定(置換)します

要素の値はオブジェクトである必要がある為、BOOL値や実数値はオブジェクト(NSNumber)に置き換えなければなりません。



参考文献

iOSアプリケーションプログラミングガイド

CGAffineTransform Reference

UIEvent Class Reference

NSSet Class Reference

UITouch Class Reference

NSUserDefaults Class Reference

UIViewController Class Reference

福井高専IT研究会OfficialWiki

Core Audioの概要

tAkatronix's GEEEK notes

@IT/Cocoaの素、Objective-Cを知ろう/第5回 配列とループ処理を理解しよう

混沌のiPoneアプリケーション工房/NSMutableDictionaryについて

iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩
(2009/03/18)
赤松 正行

商品詳細を見る

基礎からのiOS SDK基礎からのiOS SDK
(2010/10/09)
鶴薗 賢吾、松浦 健一郎 他

商品詳細を見る

クロックを作ってみた(1)

2010. 03. 06
●ビュー・アイテムの作成

ビューアイテムである針の貼付けですが、Interface Builderの仕様が変わったのか、本書の記述と(現行Ver 3.2.1とは)一部異なっていましたので修正します。

イメージビューの大きさを表示サイズに合わせるには、インスペクタのAttributes/ViewのModeを『Scale to Fill』にします。

ビューアイテムのサイズ変更は、インスペクタのSize/View Size/Size & Positionで、WとHを下表のように設定します。

ビューアイテム画像ファイル実サイズW:H:
アラーム針Hand-Alarm.png84 x 34442172
時針(短針)Hand-Hour.png72 x 42836214
分針(長針)Hand-Minute.png72 x 60436302
秒針Hand-Second.png60 x 44430222

位置修正ですが、本書記載ではビューアイテムを中央に置く際に、アイテム左上を原点としてサイズ毎にオフセットを計算していますが、現行バージョンのInterface Builderではビューアイテムの中央を原点としているらしく、オフセットを加味せずにステータスバーの20ピクセル分を引いた、画面(320 x 460)の中央にあたる『X:160 Y:230』と設定すれば全アイテムが中央に置かれます。

アラームボタンはRound Rect Buttonで、

・Attributes/Button/TypeをCustom
・『Default State Configuration』モード時、ImageをAlarm-Off.png
・『Highlighted State Configuration』モード時、ImageをAlarm-Pushed.png
・『Selected State Configuration』モード時、ImageをAlarm-On.png
・Size/View Size/Size & Positionは、X:160 Y:67 W:40 H:40

と設定します。

●アウトレットやアクションの接続

ビューアイテムを設置した時に嫌な予感がしましたが、レイアウト上、時針が分針の上にあるのでそのままではアウトレットの接続ができません。

・・・と思ったら、Interface Builderのドキュメントウィンドウをカラム表示にし、Viewを選択するとビューアイテムの一覧が表示されて、そこに接続できるんですね。
そういうことは早く言ってほしかった・・・

●時刻の取得

細かい話ですが、277ページ中央の囲みにあるNSCalendarのインスタンス名が『calender』となっています。
プログラムの動作上は問題無いのですが、気になる人は『calendar』に修正してもいいかも。

現在時刻の取得ですが本書の解説が淡白でして、『基礎からのiPhone SDK 改訂版』を参照して解読してみます。

まず、日時を扱うクラスは4つあります。

NSDateグリニッジ標準時2001年1月1日0時0分0秒からの経過秒数
NSDateComponents日時を年、月、日、時、分、秒、曜日のカレンダー形式で表す
NSTimeZoneタイムゾーンによる時差
NSCalendarタイムゾーンを加味し、カレンダー形式に成形する

NSDateは現在日時を取得できますが、経過秒数という値なのでカレンダーや時計として扱うには成形しなければなりません。

NSDateComponentsは時、分、秒など成形された値の集合なのですが、自身で成形はできません。

地域によるタイムゾーンの時差を含め、NSDateで取得した値をNSDateComponentsに成形して渡すのがNSCalendarの役目です。

NSDate *today = [NSDate date];

NSDateクラスのDateメソッドを呼び出し、todayインスタンスに現在の日時(経過秒数)を渡します。

NSCalendar *calendar = [NSCalendar currentCalendar];

NSCalendarクラスのcurrentCalendarメソッドを呼び出し、システムの環境設定(タイムゾーンはSimulatorならMacの設定、デバイスなら実機での設定に従います)に基づいたcalendarインスタンスを生成します。

unsigned flags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

NSCalendarからNSDateComponentsへデータを成形して渡す際に、どのデータを渡すかを選別しています。

flagsは10ビットで構成されており、複数指定する場合は論理和を取ります。

NSCalendar.hCFCalendar.h 
NSEraCalendarUnitkCFCalendarUnitEra(1 << 1)時代
NSYearCalendarUnitkCFCalendarUnitYear(1 << 2)
NSMonthCalendarUnitkCFCalendarUnitMonth(1 << 3)
NSDayCalendarUnitkCFCalendarUnitDay(1 << 4)
NSHourCalendarUnitkCFCalendarUnitHour(1 << 5)
NSMinuteCalendarUnitkCFCalendarUnitMinute(1 << 6)
NSSecondCalendarUnitkCFCalendarUnitSecond(1 << 7)
NSWeekCalendarUnitkCFCalendarUnitWeek(1 << 8)年の何週目
NSWeekdayCalendarUnitkCFCalendarUnitWeekday(1 << 9)曜日
NSWeekdayOrdinalCalendarUnitkCFCalendarUnitWeekdayOrdinal(1 << 10)月の何週目

『NS~CalendarUnit』はNSCalendar.hで列挙型(enum)として定義されています。
元は『kCFCalendarUnit~』という列挙型で、CFCalendar.hで定義されています。

NSDateComponents *todayComponents = [calendar components:flags fromDate:today];

NSCalendarのcalendarインスタンスに、『components:flags』でどの値を渡すかフラグを立て、NSDataのインスタンスを『fromDate:today』で渡し、NSDateComponentsのtodayComponentsインスタンスを作ります。

int hour = [todayComponents hour];
int min = [todayComponents minute];
int sec = [todayComponents second]; 

成形されたtodayComponentsインスタンスから時、分、秒を取り出します。

float fineHour = (hour % 12) + min / 60.0;

12時間制時計ということで、『hour % 12』で剰余を取り、0~11時の場合はそのまま、12~23時の場合は0~12に値がなるようにしています。

さらに分の経過にも連動して連続して動くよう、『min / 60.0』を加算しています。



参考文献

Date and Time Programming Guide for Cocoa

NSDate Class Reference

NSCalendar Class Reference

NSDateComponents Class Reference

iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩
(2009/03/18)
赤松 正行

商品詳細を見る

基礎からのiOS SDK基礎からのiOS SDK
(2010/10/09)
鶴薗 賢吾、松浦 健一郎 他

商品詳細を見る






QuietControl 30 wireless headphones
Calendar
10 | 2017/11 | 12
Sun Mon Tue Wed Thu Fri Sat
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

QuietControl 30 wireless headphones
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR