2010-05-21 2 views
0

Итак, я запускаю инструменты в своем приложении и получаю утечку, которую я мог бы поклясться, что я поступаю правильно.Удивительная утечка IPhone

+ (NSMutableArray *)decode:(NSDictionary *)encoded_faculty_array 
{ 
    NSArray *faculty_id_data = [encoded_faculty_array objectForKey:@"faculty_id"]; 
    NSArray *faculty_first_name = [encoded_faculty_array objectForKey:@"first_name"]; 
    NSArray *faculty_last_name = [encoded_faculty_array objectForKey:@"last_name"]; 

    NSMutableArray* faculty_array = [[NSMutableArray alloc] init]; 

    for(int a = 0; a < [faculty_id_data count]; a++) 
    { 
     Faculty *new_fac = [[Faculty alloc] initWithFacultyId:[Dearray clean:[faculty_id_data objectAtIndex:a] withDefault:@"0"]         
              andFirstName:[Dearray clean:[faculty_first_name objectAtIndex:a] withDefault:@"Name not found"] 
              andLastName:[Dearray clean:[faculty_last_name objectAtIndex:a] withDefault:@" "]  
              andBio:nil 
              andDegrees:nil 
              andTitle:nil]; 
     [faculty_array addObject:new_fac]; 
     [new_fac release]; 
    } 

    [faculty_array autorelease]; 
    return faculty_array; 
} 

Это сообщение об утечке new_fac. Я выпустил его сразу же после того, как позвонил. Любая идея, что может вызвать эту проблему?

Спасибо.

EDIT

Вот код intializing в Faculty экземпляр new_fac:

- (id) initWithFacultyId:(NSString *)new_id andFirstName:(NSString *)new_first_name andLastName:(NSString *)new_last_name andBio:(NSString *)new_bio andDegrees:(NSString *)new_degrees andTitle:(NSString *)new_title 
{ 
    if (self = [super init]) { 
     self.faculty_id = new_id; 
     self.first_name = new_first_name; 
     self.last_name = new_last_name; 
     self.bio = new_bio; 
     self.degrees = new_degrees; 
     self.title = new_title; 
    } 
    return self; 
} 
+0

Вы проверяете устройство или тренажер? – shosti

+0

Базовая схема выглядит нормально. Длинный выстрел, но есть ли что-то неприятное в initWithFacultyId: ...? – walkytalky

+0

- (ID) initWithFacultyId: (NSString *) new_id andFirstName: (NSString *) new_first_name andLastName: (NSString *) new_last_name andBio: (NSString *) new_bio andDegrees: (NSString *) new_degrees andTitle: (NSString *) NEW_TITLE { \t if (self = [super init]) \t { \t \t self.faculty_id = new_id; \t \t self.first_name = new_first_name; \t \t self.last_name = new_last_name; \t \t self.bio = new_bio; \t \t self.degrees = new_degrees; \t \t self.title = new_title; \t} \t \t return self; } Это init с идентификатором факультета, и я использую устройство, eman. – Ethan

ответ

0

Вы можете попробовать проверить, чтобы увидеть, если свойства факультета и убедитесь, что эти NSStrings (FirstName, LastName и т.д.) выпускаются должным образом.

Если эти строки являются свойствами, которые «сохранены», их следует освободить на факультете dealloc.

Смежные вопросы