Cocoaの日々さんの記事で初めて知ったのだけど、cmd+shift+aで、Build And Analyzeを実行すると、通常のビルドでは表示してくれない、コードの修正ポイントのようなものを教えてくれるらしい。
製作中のアプリに対して処理してみたところ、Cネイティブなコードで一カ所(これは今の俺だとちょっと直しようがないライブラリ的なところ)と、8カ所ほどautorelease関係のお知らせが出ていたので修正してみた。
個人的に入れ子の激しい複雑なコードは好きじゃないので、autoreleaseを多用しつつ、ひとつづつ変数を作っていくようなコードを書いていたのだけど、どうもそれだと何度も呼ばれる時によろしくないらしい。ちょっとぐぐって見たところ、同様の事象をたくさんみかけて、どうやら解決策としては、入れ子にしてしまって全てコンパイラ任せで処理するのがいいみたいだった。
ついうっかり修正前コードを破棄してしまったので再掲できないが、修正後コードはこんな感じ(背景に画像をセットする)
NSString * imageName =[NSString stringWithFormat:@"bg%d.png",num]; self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageWithContentsOfFile: [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:imageName]]];
要は、NSStringでファイル名を作って、バンドルのパス付きのファイルパスを作って、UIImageを作って、UIColorに渡す、のを別々に書いていたのだけど、ひとつなぎ(財宝じゃないしw)にした感じ。これで前述の警告はでなくなった。
アナライザの性能ってゆうか、情報がどこまで正なのかはよくわからないけど、頼れるものは頼った方が楽なので、今後はcmd+shift+aを多用しようと思う。
0 件のコメント:
コメントを投稿