2014-01-10 3 views
-2

это часть моего кода:IOS сохранить счетчик Issue

NSMutableArray oldWordsArray; 

newWordsArray= [self getNewWordArray]; 

-(NSMutableArray *) getOldWordArray{ 

    NSString *user_id = (NSString*)[tool readObkect:@"user_id"]; 

    NSMutableArray oldWords = [[NSMutableArray alloc]init]; 
    oldWords = [database getOldWord:user_id]; 
    NSLog(@"从所有词库中得到新单词"); 
    return oldWords; 
}` 

Итак: как я должен выпустить Variable oldWordsArray и oldWords, большое спасибо!

+0

вы должны использовать ARC, вместо того, чтобы вручную выпускать объекты. – suhit

+0

Просто вы знаете, что 'IOS' (http://en.wikipedia.org/wiki/Cisco_IOS) не совпадает с именем' iOS' (http://en.wikipedia.org/wiki/IOS), который редактировал ваш заголовок. – Popeye

+0

'вы должны использовать ARC, вместо того, чтобы вручную освобождать объекты.' На самом деле нет. Вы можете использовать тот или иной. – Peres

ответ

1

Я предполагаю, что вы не используете ARC. Это:

-(NSMutableArray *) getOldWordArray{ 
    NSString *user_id = (NSString*)[tool readObkect:@"user_id"]; 

    NSMutableArray oldWords = [[NSMutableArray alloc]init]; 
    oldWords = [database getOldWord:user_id]; 
    NSLog(@"从所有词库中得到新单词"); 
    return oldWords; 
} 

Может быть переведены на это:

-(NSArray *) getOldWordArray{ 
    NSString *user_id = (NSString*)[tool readObkect:@"user_id"]; 
    NSArray oldWords = [database getOldWord:user_id]; 
    NSLog(@"从所有词库中得到新单词"); 
    return oldWords; 
} 

И потом:

- (NSArray *)oldWordArray 
{ 
    NSString *user_id = (NSString*)[tool readObkect:@"user_id"]; 
    return [database getOldWord:user_id]; 
} 

Я не уверен, что database есть, но он должен вернуть autoreleased объект, так в этом контексте вам не обязательно release. Вы также должны использовать префикс get в getOldWord. Вы также можете использовать NSArray вместо NSMutableArray.

+0

Большое спасибо, это работает! –

0

Так много дискуссий здесь относительно этого Первое, что вы должны проверить, что если ARC включены, если да, то вам не беспокоиться об освобождении будет сделано самой АРК

если нет, то используйте такой код

-(NSMutableArray *) getOldWordArray{ 

    NSString *user_id = (NSString*)[tool readObkect:@"user_id"]; 

    NSMutableArray oldWords = [[[NSMutableArray alloc]init]autorelease]; 
    oldWords = [database getOldWord:user_id]; 
    NSLog(@"从所有词库中得到新单词"); 
    return oldWords ; 
} 

или вы можете использовать

-(NSMutableArray *) getOldWordArray{ 

    NSString *user_id = (NSString*)[tool readObkect:@"user_id"]; 

    NSLog(@"从所有词库中得到新单词"); 
    return [database getOldWord:user_id]; 
}