Я вижу странное поведение, и мне нужна помощь с ним.
В структуре. Ч у меня есть:
typedef struct {
NSString *summary;
NSArray *legs;
NSString *copyrights;
struct polylineSruct overview_polyline;
struct directionBounds bounds;
} route;
typedef struct {
NSArray *routes;
NSString *status;
} directions;
В структуре. M у меня:
(directions) a_Function_that_builds_the_struct
{
directions direct;
direct.status = @"OK";
NSMutableArray *routes = [NSMutableArray array];
for(xxx)
{
route routeL;
routeL.summary = @"1";
routeL.copyrights = @"2";
NSValue *boxedroute = [NSValue valueWithBytes:&routeL objCType:@encode(route)];
[routes addObject:boxedroute];
}
direct.routes = routes;
return direct;
}
в list_itemsViewController.h У меня есть:
implementation XXX:YYY{
directions directionsLoc;
}
@property (assign) directions directionsLoc;
в list_itemsViewController.h У меня есть:
@synthesize directionsLoc;
....
- (void)viewDidLoad
{
....
self.directionsLoc = a_Function_that_builds_the_struct;
....
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [directionsLoc.routes count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
....
cell.textLabel.text = directionsLoc.status
return cell;
}
Когда я запускаю приложение, я получаю список со всеми правильными строками, если я немного прокручиваю для tableView: cellForRowAtIndexPath: свойство directionsLoc освобождается.
Кто-нибудь знает, почему у меня возникла эта проблема? Это потому, что я использую typedef, а сохранение не сохраняется? Если я возвращаю в a_Function_that_builds_the_struct и NSArray направления, когда происходит прокрутка и выполняется tableView: cellForRowAtIndexPath: массив имеет один элемент, как и ожидалось, но элементы состояния и маршрутов объекта являются зомби.
Есть мысли о том, почему это происходит?
Спасибо.