統計情報(30日間)


最新情報をツイート


人気の投稿

【OS X】iTunes Library Framework

このエントリーをはてなブックマークに追加

これも知らなかった。Mac用に iTunes Library Framworkのリファレンスが公開されていた。



クラス
ITLibAlbum
ITLibArtist
ITLibArtwork
ITLibMediaEntity
ITLibMediaItem
ITLibMediaItemVideoInfo
ITLibPlaylist
ITLibrary
iOSと同じようにMacでもiTunesへアクセスできるようになったのか。

UnitTests

このエントリーをはてなブックマークに追加

Mac OS X アプリ向けサンプルコード。スタティックライブラリのビルドと単体テスト、そしてアプリテストコードなど。



ターゲットはライブラリとアプリ、それぞれのテストで計4つ。

スタティックライブラリ Calculator-Mac を電卓アプリ Mac_Calc で利用する構成となっている。このライブラリは電卓のロジックを受け持っていて input: メソッドで "6" "+" "2" "=" と順々に渡すと結果を返す作りになっている。

ライブラリのテストはごく普通の OCUnit によるテストコード(Logic Test)。
- (void) testAddition {
   NSLog(@"%@ start", self.name);   // self.name is the name of the test-case method.
   [calculator input:@"6"];
   [calculator input:@"+"];
   [calculator input:@"2"];
   [calculator input:@"="];
   STAssertTrue([[calculator displayValue] isEqualToString:@"8"], @"");
   NSLog(@"%@ end", self.name);
}

アプリは簡単な電卓。


このアプリをテストするコードが付いている。
- (void) setUp {
   app                  = [NSApplication sharedApplication];
   calc_view_controller =
    (CalcViewController*)[[NSApplication sharedApplication] delegate];
   calc_view            = calc_view_controller.view;
}

- (void) testAddition {
   [calc_view_controller press:[calc_view viewWithTag: 6]];  // 6
   [calc_view_controller press:[calc_view viewWithTag:13]];  // +
   [calc_view_controller press:[calc_view viewWithTag: 2]];  // 2
   [calc_view_controller press:[calc_view viewWithTag:12]];  // =   
   STAssertTrue([[calc_view_controller.displayField stringValue]
     isEqualToString:@"8"], @"Part 1 failed.");   
}
面白いのはビューコントローラに対してテスト実行しているところ。上記の press: は IBAction で画面上のボタンを押した時に呼ばれるメソッド。
@interface CalcViewController : NSViewController {
 IBOutlet id displayField;
   Calculator *calculator;
}

@property (nonatomic, retain) IBOutlet id displayField;

- (IBAction)press:(id)sender;

@end

この方法なら機能的なテストができる。UIオペレーションのテストは面倒なところなので、これだけでも最低限のテストとしていいかもしれない。


[NEWS] Mac OS X Developer Library のドキュメント更新&新規追加

このエントリーをはてなブックマークに追加

Mac OS X の方も大量更新&新規追加。Lionがトップに表示されるようになったw




こちらも新規分を紹介。

iTunes Connect Help (2012/01/09)

Document-Based App Programming Guide for Mac: About the Cocoa Document Architecture (2012/01/09)

Cryptographic Services Guide: About Cryptographic Services (2012/01/09)

Concepts in Objective-C Programming: About the Basic Programming Concepts for Cocoa and Cocoa Touch (2012/01/03)

Thunderbolt Device Driver Programming Guide: About the Thunderbolt Technology (2011/12/21)

iOS とかぶる部分もある。Mac固有なのは "Document-Based App Programming Guide for Mac" や "Thunderbolt Device Driver Programming Guide" など。前者は v10.7 から導入されたオートセーブや非同期保存、iCloud対応の記述などがある。