проблемы выделения памяти - PullRequest
0 голосов
/ 17 июля 2011

Я работаю с UITableViewController, и у меня есть функция, которая вызывается при распознавании жеста (проведите пальцем вправо / влево и т. Д.).Я также реализую пользовательский класс ячейки.Внутри функции свипирования у меня есть:

 CustomCell* cell = (CustomCell *) [self.tableView cellForRowAtIndexPath:indexPath];
  ((RKMappableObjectTableItem *)[cell object]).options = YES;

Каждая ячейка имеет связанный с ней объект, который является RKMappableObjectTableItem, имеет два свойства, одно - объект, а другое - BOOL.

@interface RKMappableObjectTableItem : TTTableLinkedItem {
    NSObject* _object;
    BOOL _options;
}

@property (nonatomic, retain) NSObject* object;
@property (nonatomic, assign) BOOL options;

+ (id)itemWithObject:(NSObject*)object;

@end

Теперь, что я пытаюсь сделать с помощью этой функции, - установить для параметров bool значение YES.После выполнения этой функции проведите мой rowHeightForObject

+ (CGFloat)tableView:(UITableView *)tableView rowHeightForObject:(id)item {
  if (((RKMappableObjectTableItem *) item).options){
        NSLog(@"OPTIONS HEIGHT SET");
    }
}

, этот rowHeightForObject находится внутри моей реализации CustomClass.Элементом здесь является RKMappableObjectTableItem.Теоретически адрес памяти элемента, который я здесь получаю, должен совпадать с адресом, полученным с помощью функции смахивания, верно?Но после использования отладчика я проверил, что все по-другому, и поэтому оператор if никогда не выполняется.Вопрос в том, почему это так и как мне это решить?

ОБНОВЛЕНИЕ:

Вот реализация RKMappableObjectTableItem

@implementation RKMappableObjectTableItem

@synthesize object = _object;
@synthesize options = _options;

+ (id)itemWithObject:(NSObject*)object {
    RKMappableObjectTableItem* tableItem = [self new];
    tableItem.URL = [object URLValueWithName:@"show"];
    tableItem.object = object;
    return [tableItem autorelease];
}

@end
...