2011-10-11 33 views
0

這是我的第一個應用程序,而實際上是不完全甚至雷,而是涉及到再加工現有的應用程序添加功能。IOS值丟失或遺忘

它涉及到一個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]; 
    } 
} 

Eventhough,當我調試,在gotTheCollection方法轉到一個值到視圖的feedURL,它失敗,那麼在如果(個體feedURL)視野內檢查並因此從未視圖被填充。

由於我對這段代碼很陌生,我不知道序列是錯誤的,或者也許是我如何傳遞變量。

我知道的描述是比較模糊的,但即使是在基層,我不知道這個功能在客觀C工作,它不會導致任何錯誤,雖然,只是坐在那裏不加載,因爲它無法獲得數據。

UPDATE:FeedURL的定義如下,在H的文件:

NSURL *feedURL; 

然後

@property (nonatomic, retain) NSURL *feedURL; 

然後在M檔:

@synthesize feedURL; 

感謝您的幫助傢伙,我終於決定重新開始整個升級過程因爲項目已經變成了一堆亂七八糟的重做代碼,我無法確定哪些是有效的,哪些沒有。其結果是沒有明確的答案,但我想象弗蘭克斯可能是最接近的,所以我會慶祝,作爲答案。

+0

有幾件事要看1)可以testViewController.feedURL保留它設置它2)是相同的testViewController實例被帶到視圖,以便其viewDidLoad可以訪問它的feedURL上設置的內容? – Saran

+0

feedURL是如何定義的? – Frank

+0

我已經更新了feedURL的定義問題,它與很多其他聲明的H + M檔所以我只張貼的相關部分。原因沒有錯誤,所以我不得不假定feedURL設置正常。 –

回答

1

的NSURL被自動釋放,你需要自己

保留它分配給NSURL feedURL,像這樣

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

這也將意味着你必須自己釋放它。