4

アナライザーは、次のコードにメモリ リークの可能性があることを報告します。誰でもこれに光を当てることができますか?割り当てられたアノテーションを解放します。

  -(AddressAnnotation *)addAdress:(NSString*)placeTitle SubTitle:(NSString*)placeSubTitle Coordinate:(CLLocationCoordinate2D)coord withId:(NSInteger) placeId{
        AddressAnnotation *annotation = [[AddressAnnotation alloc] initWithCoordinate:coord];
        annotation.placeTitle = placeTitle;
        annotation.placeSubTitle = placeSubTitle;
        annotation.museumId = placeId;
        [mapView addAnnotation:annotation]; 
        return annotation;

        [annotation release];
    }
4

2 に答える 2

7

リターン後にリリースするので、呼び出されることはありません。また、注釈を追加すると、マップ ビューに注釈が保持されることにも注意してください。

于 2012-05-24T15:39:37.490 に答える
5

変化する

return annotation;
[annotation release];

return [annotation autorelease];
于 2012-05-24T15:40:21.287 に答える