2012-04-30 74 views
1

基本上我想要做的是使網絡刷新和獲取對象,將其存儲在我的應用程序委託中的nsmutable數組中。然後我有一個listviewController,它使用該可變數組來顯示數據。NSArray集屬性不工作

設置的NSArray沒有在這裏工作是代碼:

//Appdelegate code called after pulldown to refresh is done on listview: 

    [ListView setArrayElements:(NSMutableArray*)sortedArray ]; 
     NSLog(@"sortedArray count:%d",sortedArray); 
    NSLog(@"ListView Array count:%d",[ListView.ArrayElements count]); 

    Result i get in log : "sortedArray count:12" (which is perfect)&"ListView Array count:0" (this is not the right result) 
+0

Try with BeginUpd ates和EndUpdate方法,我毫無問題地使用它們 –

+0

我敢打賭,在估計的請求時間過去之後,您正在使用NSTimer刷新表視圖。但是你低估了時間膨脹,並且在實際獲得新數據之前刷新視圖。 – 2012-04-30 11:29:17

+0

爲什麼用計時器刷新?爲什麼不在重新加載數據後立即調用reloadTableView? –

回答

0

很難假設沒有看到更多的代碼,但你怎麼定義ArrayElements財產?它可能不會保留自己,並且在創建對象ListView時可能沒有初始化它。

讓我知道這是否工作;

確保ArrayElements在您ListView.h創建類似如下:

@property (nonatomic, retain) NSMutableArray *ArrayElements; 

或者對-init-viewDidLoadListView的,

self.ArrayElements = [[NSMutableArray alloc] init]; 

不要忘記釋放你保留什麼:

- (void)dealloc 
{ 
    //..... 
    [ArrayElements release]; 
    [super dealloc]; 
} 
-4

不要讓UITableView的對象的屬性。只要使用tableView對象,刪除'自我'。一部分。 告訴我,如果有幫助!

+0

不過仍然是相同的。我認爲問題是在我做setArrayElements時,ListView中的nsarray沒有刷新。因爲我拉動刷新完成後仍然可以計數 – IphoneBites

+2

爲什麼他必須這樣做?!爲什麼他不能將UITableView保留爲屬性? – Kuba

0
- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    [self.mTableView reloadData]; 
}  

使用這種方法

+0

視圖加載時工作正常,provlem只有當我做拉刷新。數據加載新元素 – IphoneBites

+0

如果你喜歡這個代碼,接受這個答案,並增加你的積分.... – akk

+0

看到我更新的答案..... – akk