Build And Analyze で指摘されたケースについて記録を残しておく。
Potential leak of an object allocated
メモリリークのケース
開放わすれ(NS系オブジェクト)
Appleのサンプルからコピーしてきたものだが NSCalendar* gregorian の開放ができていなかった。return前に開放コードを追加する必要がある。
[gregorian release];
開放忘れ(CG系関数)
CGImageCreateWithMask()で生成した CGImageRef が開放されていない。次のように書き直す。
CGImageRef maskImage = CGImageCreateWithMask(grayScaleImage, alphaImage); UIImage* grayScaleUIImage = [UIImage imageWithCGImage:maskImage]; CGImageRelease(maskImage);
開放忘れ(UIViewController)
単純な開放忘れ。最後に開放コードを追加する。
[viewController release];
undefined or garbage value
Undefined or garbage value returned to caller
これは cell が初期化されていないのと、switch-case文で default: が定義されていないことによる。今回は下記のコードを追加した。
UITableViewCell* cell = nil;
Pass-by-value argument in message expression is undefined
これもauto変数が初期化されていないのと、switch-case文で default: が定義されていないことによる。今回は下記のコードを追加した。
EditViewController* viewController = nil;;
The left operand of '<' is a garbage value
height が初期化されていない。初期化処理を追加する。
CGFloat height = 0;
これで無事完了。
Responses
Leave a Response