質問

以下の方法を見ます:

-(void)updateProfile:(Profile *)profile WithJSON:(NSString *)JSON;
{
    SBJSON *parser = [[SBJSON alloc] init];
    NSDictionary *object = [parser objectWithString:JSON error:nil];

    NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
    [nf setPositiveFormat:@"#,##0"];

    profile.displayName = [object valueForKey:@"displayName"];
    profile.profileURL = [object valueForKey:@"profileURL"];

    NSString *rep = [object valueForKey:@"reputation"];
    profile.reputation = [[nf numberFromString:rep] intValue];
    //[rep release];   <-Why not release?

    [nf release];        
    //[object release];  <-Why not release?
    [parser release];
}

私がいない場合は、私にEXC_BAD_ACCESSを与える、2行をコメントアウトしている。
それは、これらのオブジェクトを解放するために間違っている理由を誰かが私に説明できますか?

役に立ちましたか?

解決

あなたは+allocていなかったので、それを解放-retain、またはそれを-copyべきではありません。 +objectWith…リターン自動解放オブジェクトなどのコンビニエンスコンストラクタます。

他のヒント

聞いて、より良い質問です:なぜの のあなたはそれを解放する必要がありますか?あなたは、オブジェクトの上に所有権を主張するために何をしましたか?この場合、答えは「何も。」ではありませんあなたはそれを所有していないので、あなたは非常によくそれを解放することはできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top