我在 iOS 3. 0+ 中还有一个关于记忆管理的问题, 我知道如果我们做到了[变量释放] 将会释放它 保留到一个物体上, 但是这样的代码...
- (void) getPostsFromJson:(NSData *)data
{
NSError *theError = nil;
NSDictionary *dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:data error:&theError];
if (dict == nil) {
[SystemStatusValues getInstance].isValidJson = NO;
[SystemStatusValues getInstance].httpStatus = HTTP_STATUS_FAILED;
NSLog(@"getPostsFromJson - %@ %@",
[theError localizedDescription],
[[theError userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
} else {
NSArray *keys = [dict allKeys];
keys = [keys sortedArrayUsingFunction:keySortByInteger context:nil];
self.keys = keys;
self.posts = dict;
NSLog(@"Posts : getPostsFromJson = %@", self.posts);
if ([keys count] < TOTAL_SECTIONS) {
[SystemStatusValues getInstance].isValidJson = NO;
} else {
[SystemStatusValues getInstance].isValidJson = YES;
if (self.nextPosts == nil) {
}
}
// [keys release];
// [dict release];
return;
}
}
您可以看到有两个本地变量- 密钥和 dict, 我是否需要在代码结尾处调用 [ 密钥释放] 或 [ dict 释放]? 实际上, 我做到了, 但有时会粉碎它。 所以对于本地变量, 我们不需要在它使用后释放它?