なぜ私はこの文字列を解放するべきではないのですか?
-
20-09-2019 - |
質問
以下の方法を見ます:
-(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…
リターン自動解放オブジェクトなどのコンビニエンスコンストラクタます。
他のヒント
聞いて、より良い質問です:なぜの のあなたはそれを解放する必要がありますか?あなたは、オブジェクトの上に所有権を主張するために何をしましたか?この場合、答えは「何も。」ではありませんあなたはそれを所有していないので、あなたは非常によくそれを解放することはできません。
所属していません StackOverflow