Цель C - установить переменную в viewDidLoad и использовать ее в другом месте - PullRequest
0 голосов
/ 17 июня 2011

еще одна цель c вопросом для вас. Наверное, тоже простой ...

В моем методе viewDidLoad я устанавливаю переменную. Мне нужно получить доступ к этому в - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath, однако я получаю следующую ошибку, и я не знаю, как ее отсортировать!

- [CFString intValue]: сообщение отправлено освобожденному экземпляру 0x592dcb0

- (void)viewDidLoad
{   
    //code to get json is here
    totalInCategory = [parsedJson objectForKey:@"TotalInCategory"];
    NSLog(@"totalincat %i",[totalInCategory intValue]);

    [super viewDidLoad];
}

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)celllforRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"totalincat %i",[totalInCategory intValue]);

    if((indexPath.row == [myArray count]-1)&&(indexPath.row < [totalInCategory intValue]))
    {
        //code to get more rows
        [self.tableView reloadData];
    }
}

У меня есть NSString * totalInCategory; настроить и синтезировать.

totalInCategory отлично подходит для viewDidLoad (насколько я знаю), но больше нигде ... любые идеи были бы действительно полезны!

Ответы [ 4 ]

4 голосов
/ 17 июня 2011

Сохранить данные ...

totalInCategory = [[parsedJson objectForKey:@"TotalInCategory"] retain];

objectForKey возвращает автоматически выпущенный объект, который вам нужно сохранить, если вы хотите его использовать. Не забудьте добавить [totalInCategory release]; в dealloc.

2 голосов
/ 17 июня 2011

положить:

[totalInCategory retain] чуть ниже totalInCategory = [parsedJson objectForKey:@"TotalInCategory"];

Это сохранит переменную, которая в настоящее время автоматически высвобождается методом objectForKey.

1 голос
/ 17 июня 2011

Не зная типа синтаксического анализа Json, я не могу быть уверен, но вполне вероятно, что вы пропустили сохранение.

 totalInCategory = [[parsedJson objectForKey:@"TotalInCategory"] retain];

А в методе dealloc для класса добавить

 [totalInCategory release];

Возможно, вам стоит взглянуть на iOS Руководство по программированию управления памятью , если вы этого еще не сделали.

0 голосов
/ 17 июня 2011

Используйте totalInCategory с self. если вы указали сохранить в объявлении свойства.

self.totalInCategory = [parsedJson objectForKey:@"TotalInCategory"];
...