Значения IOS, переданные в представление, потеряны или забыты - PullRequest
0 голосов
/ 11 октября 2011

Это мое первое приложение, и на самом деле оно даже не полностью мое, а скорее требует доработки существующего приложения для добавления функциональности.

Он включает в себя фид JSON, который я успешно читаю, а затем пытаюсь передать значение URL в представление. Вот код моего делегата приложения, который успешно запускается после чтения канала:

- (void)JSONFetch:(MYJSONFetch *)fetch gotTheCollection:(id)collection 
{
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    self.testViewController.feedURL = [NSURL URLWithString:[collection objectForKey:@"Listings"]];

    [JSONFetch release];
    JSONFetch = nil;
}

Тогда в моем testViewController у меня есть метод viewDidLoad:

- (void)viewDidLoad {
   [super viewDidLoad];


    if(self.feedURL)
    {
        [self startDownload];
    }
}

Несмотря на то, что когда я отлаживаю, метод gotTheCollection передает значение в feedURL представления, оно затем завершается неудачно при проверке if (self feedURL) внутри представления, и, таким образом, представление никогда не заполняется.

Поскольку я так новичок в этом коде, я понятия не имею, неверна ли последовательность или, возможно, именно так я передаю переменную.

Я знаю, что описание относительно расплывчато, но даже на базовом уровне, я не знаю, работает ли эта функция в цели C, она не вызывает никаких ошибок, просто сидит, не загружается, потому что не может получить данные.

ОБНОВЛЕНИЕ: определение FeedURL следует в файле H:

NSURL *feedURL;

тогда

@property (nonatomic, retain) NSURL *feedURL;

затем в файле M:

@synthesize feedURL;

Спасибо за помощь, ребята, я наконец решил просто перезапустить все обновление, так как проект превратился в беспорядок переработанного кода, и я не мог быть уверен, что работает, а что нет. В результате нет четкого ответа на это, но я думаю, что Фрэнкс был, вероятно, самым близким, поэтому я отмечу это как ответ.

1 Ответ

1 голос
/ 11 октября 2011

NSURL выпускается автоматически, вам нужно будет сохранить его самостоятельно

Назначьте NSURL для feedURL, вот так

self.testViewController.feedURL = [[NSURL URLWithString:[collection objectForKey:@"Listings"]] retain];

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

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