- NSAssert( condition, NSString *description )
- Target Outputには止まった箇所(ソース名/行番号など)が出力される。
- descriptionはログに出力される。(けど、ログって何?)
- descriptionに引数を付けることも出来る。(NSAssert1〜5まである)
NSAssert1( condition, @"%d", 123 );
NSAssert2( condition, @"%d %f", 123, 4.56f );
- NS_BLOCK_ASSERTIONSが定義されていると無効になる。
- Releaseのビルドオプションに-DNS_BLOCK_ASSERTIONSを追加。
- NSLog( NSString *format, ... )
#define NSLog( args... ) NSLog( args, 0 )
- クラスのインスタンス変数は、メモリ上にインスタンスが割り当てられるときにnilで初期化される。
{
int hoge_;
}
@property (readonly) int hoge;
@synthesize hoge = hoge_;
- ビューをプログラムで構築している場合は、ビューの作成コードをView ControllerのloadViewメソッドに記述します。(「iOS View プログラミングガイド」より)
- ビューをプログラムで作成するかnibファイルからロードするかにかかわらず、viewDidLoadメソッドにはビューの設定コードを追加で
きます。(「iOS View プログラミングガイド」より)
- initでビューを作成(self.viewをalloc)するとloadViewやviewDidLoadが呼ばれない。
for()
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
/* 処理 */
[pool drain];
}
- Debug用とRelease用のSchemeを作成すると便利。
- [Product]-[Edit Scheme],[New Scheme],[Manage Schemes]あたりで作成/編集。
- デバイス選択のところでSchemeを選択出来るようになる。
- [Scheme]-[Run]-[Arguments]のEnvironment Variablesに下記の定義をすると色々分かって便利らしい。
NSZombieEnabled YES
NSDebugEnabled YES
MallocStackLogging YES
- NSZombieEnabledはメモリ消費が激しいので注意。
- Xcode4では[Product]-[Edit Scheme]-[Run]-[Diagnostics]内のチェックボックスで設定できる。
機種 |
解像度 |
ドット数比率 |
note |
iPhone |
480 x 320 |
3:2 |
|
iPhone |
960 x 640 |
3:2 |
Retina |
iPhone5 |
1136 x 640 |
71:40 |
Retina |
iPod touch |
960 x 640 |
3:2 |
|
iPod classic |
320 x 240 |
4:3 |
|
iPad2 |
1024 x 768 |
4:3 |
|
新しいiPad |
2048 x 1536 |
4:3 |
Retina |
- iPhone
- iPhone 3G
- iPod Touch 1st~2nd generation
- iPhone 3GS
- iPhone 4
- iPhone 4S
- iPad
- iPad2
- iPod Touch 3rd~4th generation
- iPhone 5
- iPod Touch 5th generation
- PowerVR MBX
- iPod Touch 1st~2nd generation
- iPhone
- iPhone 3G
- PowerVR SGX
- iPod Touch 3rd~4th generation
- iPhone 3GS
- iPhone 4
- iPad (SGX535)
- iPad2 (SGX543MP2)
- 新しいiPad (SGX543MP4)
texturetool -e PVRTC -o out.pvr -f PVR in.png
texturetool -e PVRTC --bits-per-pixel-2 -o out.pvr -f PVR in.png
texturetool -e PVRTC --channel-weighting-perceptual -o out.pvr -f PVR in.png
- 重い。playやprepareToPlayで10msとか20msとか掛かる。
- ターミナルで.wavから.caf(ima4)に一括コンバート
find . -name '*.wav' -exec afconvert -f caff -d ima4 {} \;
グラフィックチップ |
OpenGLのバージョン |
2Dテクスチャの最大サイズ |
PowerVR MBX |
OpenGL ES1.1のみ |
1024x1024 |
PowerVR SGX |
OpenGL ES2.0もOK |
2048x2048 |
- テクスチャサイズは2のべき乗。(ES1.1の仕様、2.0は不明)
- [[UIScreen mainScreen] bounds]の値はRetinaでも通常と同じ。((0,0,320,480)など)
- Retinaでは[UIScreen mainScreen].scale=2.0になっている。
- scaleは4.0以降にしか存在しない。
- iPadはscale=1.0
- 関連リンク
Last modified 2013-02-01 16:26:36