既存のiPhoneアプリをiPhone/iPa
これはどうやら、全てのローカライゼーションに対してiPad用のscreenshot
既存のiPhoneアプリをiPhone/iPa
これはどうやら、全てのローカライゼーションに対してiPad用のscreenshot
アプリをアップロードしようとしたのですが、Xcode 3.2.5+SDK4
The dwarfdump binary must exist and must be executable
: /usr/bin/d warfdump (-19036)
ネットを色々見たところ、Xcodeを再インストールなんていう解決策も見たのですが、それはちょっと…と思ったので、
iTunes ConnectのManage Your Applicatio
Using Applicatio
https://it
unesconnec t.apple.co m/apploade r/Applicat ionLoader_ 1.3.dmg Applicatio
n Loader
Version 1.3 (89)
Upload & 更新申請うまく行きました!
ちなみに、Xcode3.2.5
Applicatio
n Loader
Version 1.4 (92)
assertが失敗した場合に任意のコードを実行してからabortを行うようにする方法の簡単な実装です。
1 #define ASSERT(cond) \ 2 for (; !(cond); assert(#cond == false))
使用例:
1 ASSERT(a>0 && a%3 == 0){ 2 printf("Invalid a: %d\n", a); 3 }
出力例:
1 Invalid a: 1 2 Assertion failed: ("a>0 && a%3 == 0" == false), function fooBar, file baz.c, line 123
UITabBarCo
すなわち5番目以降のビューは UINavigati
で、more に戻る backBarBut
self が UITabBarCo
方法1、文言だけの変更
1 self.moreNavigationContro ller.rootViewCo ntroller.title = @"HOKA"; 2
方法2、イメージを貼る
1 self.moreNavigationContro ller.rootViewCo ntroller.navigation Item.backBarBut tonItem = [ [ [ UIBarButto nItem alloc ] initWithIm age:[ UIImage imageNamed :@"0.png" ] style:UIBarButto nItemStyle Bordered target:nil action:nil ] autoreleas e ]; 2
結末に驚いたのでメモ。
XcodeでBuild & Analyzeすると、下記のようなメッセージが出て困っていました。UILabelのインスタンスを返すような関数なのですが、ちゃんとautoreleas
Object with +0 retain counts returned to caller where a +1 (owning) retaincoun
t is expected
メモリ管理周りをググったり、stackoverf
Object with +0 retain counts returned to caller where a +1 (owning) retaincoun
t is expected - Stack Overflow
http://stackoverflow .com/quest ions/35534 01/object- with-0-ret ain-counts -returned- to-caller- where-a-1- owning-ret aincount-i
結局、コード自体は間違っていなくて、「関数名が良くない」ということでした。AppleのMemory Management
You “create” an object using a method whose name begins with “alloc” or “new” or contains “copy” (for example, alloc, newObject, or mutableCop
y). [意訳] Objectを作成する際にはalloc, new, copyなどで始まる関数名を使う(例、alloc, newObject, mutableCop
y)
コード内の関数名を書き換えて、解決!
(newで始まるだけではダメなのですね…)
1 //NG 2 (UILabel *)newLabelWithPrimaryC olor:(UIColor *)primaryCol or; 3 4 //OK 5 (UILabel *)createLabe lWithPrima ryColor:(UIColor *)primaryCol or;
Fast App Switch周りをガリガリやっていたら、@hkato193さんからメモリ警告絡みでアドバイスを頂きました。大変参考になったのでメモ。
http://twi
@satoko ですので、メモリ警告が出てもデータ送信が継続できるようになっているか(ビューとかが捨てられるのは普通通りの対処でOK)、willTermia
つまり、Background
Task Completion
1 // WWDC 2010 Session 109 2 // Adopting Multitasking on iPhone OS, Part2 より引用 3 self.bgTask = [app beginBackg roundTaskW ithExpirat ionHandler :^{ 4 [self prepareFor Suspend]; 5 [self pauseUploa d]; 6 }]; 7 8 // returns after upload finishes or pauses 9 [self uploadPhot os]; 10 11 [app endBackgro undTask:self.bgTask];
詳細の書き方については、BlockやらGrand Central Dispatchを理解する必要がありそうなのですが、なんとなく次が見えた感じです。