什么时候应该发布我的阵列?

She*_*lam 8 memory iphone cocoa-touch objective-c nsarray

我正在从互联网解析一些JSON,然后将它们添加到一个数组,这是我的UITableView的数据源.我不确定何时应该发布我的阵列?

.h:物品

@property(nonatomic,retain)NSMutableArray*  items;
Run Code Online (Sandbox Code Playgroud)

.m:connectionDidFinishLoading

// fetch succeeded    
    NSString* json_string = [[NSString alloc] initWithData:retrievedData encoding:NSUTF8StringEncoding];

    //Check ST status
    int status =  [[[[json_string objectFromJSONString] valueForKey:@"response"] valueForKey:@"status"]intValue];
    //NSLog(@"Status: %d", status);

    items = [[NSMutableArray alloc] init];
    NSDictionary* messages = [[NSDictionary alloc] init]; 

    switch (status) {
        case 200:
            messages = [[[json_string objectFromJSONString] valueForKey:@"messages"] valueForKey:@"message"];

            for (NSDictionary *message in messages)
            {
                [items addObject:message];
            }
            [self.tableView reloadData];
        break;

        default:
        break;
    }
Run Code Online (Sandbox Code Playgroud)

Dee*_*olu 9

一,如果你打算调用它,你可能想要声明items为一个实例.NSMutableArrayaddObject:

二,将它声明为一个属性,这样如果你最终得到它多次,那么当你这样做时,旧的值将被释放.

self.items = [NSMutableArray array];
Run Code Online (Sandbox Code Playgroud)

释放它的正确点是dealloc.