UITableView помогает решить проблему с массивом - PullRequest
0 голосов
/ 20 августа 2011

У меня есть UITableView, и я пытаюсь вернуть количество строк, используя [arrayName count], однако, когда я запускаю приложение, оно кажется сбойным без ошибок, отображаемых в консоли. Вот некоторый код .. (также, когда я проверяю массив в ViewDidLoad, используя NSLog, он возвращает '16', поэтому я не уверен, почему он падает, когда я делаю подсчет строк.

Ответы [ 3 ]

1 голос
/ 20 августа 2011

Я думаю, что проблема в этой строке:

elements  = [xpathParser search:@"//div[starts-with(@id,'content_div')]//a"];

Я полагаю, что метод - search возвращает объект автоматического освобождения, поэтому ваш объект elements получает сообщение об освобождении после возврата метода viewDidLoad и, следовательно, освобождается.

Вы можете исправить это двумя способами:

  • добавить retain вызов, например

    elements = [[xpathParser search:@"//div[starts-with(@id,'content_div')]//a"] retain];

  • используйте свойства, подобные этому

    self.elements = [xpathParser search:@"//div[starts-with(@id,'content_div')]//a"];

1 голос
/ 20 августа 2011

Вам не нужно выпускать htmldata, так как он уже выпущен автоматически.Удалите строку [htmldata release];, и она должна работать.

Кроме того, вы никогда не освобождаете объект после строки [super dealloc].Подведите строку [elements release]; перед супер-деллоком.

0 голосов
/ 20 августа 2011

Вы не сохраняете элементы, а когда назначаете их, вы назначаете их непосредственно свойству и не проходите через метод установки.

Попробуйте:

self.elements  = [xpathParser search:@"//div[starts-with(@id,'content_div')]//a"];

Кроме того, не забудьте освободить его в методе dealloc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...