我有一個自定義NSObject
類,做一些FTP工作(顯示,傳輸...)。iOS,UITableView中的延遲顯示與insertRowsAtIndexPaths:withRowAnimation:
此FTP類有一個downloadFiles:
方法,它在NSOperationQueue
內啓動。
我想這種方法提供一些結果作爲數據源在UITableView
。所以我決定將這些結果委託給UITableViewController
。
所以對於FTP類的協議:
@protocol FTPDelegate;
..
@interface FTP...
@property (nonatomic, weak) id <FTPDelegate> delegate;
...
@protocol FTPDelegate
-(void)FTPMessageReceived: (NSString *)message;
@end
然後,我宣佈自定義UITableViewController
作爲FTP類的代表:
self.myFTP = (FTP *) [self FTPManager];
self.myFTP.delegate = self;
所以當downloadFiles:從FTP類的方法想在UITableView
顯示一些消息,它調用:
[[self delegate] FTPMessageReceived:@"dir created"];
的UITableViewController
實現了方法:
-(void)FTPMessageReceived: (NSString *)message {
NSUInteger index;
NSArray * indexArray;
[[self logLine] addObject: message]; // logLine is my data source
index = [[self logLine] count]-1;
NSLog(@"%u", index);
indexArray = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:index inSection:0]];
[[self logView] insertRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationRight];
}
插入的作品,但新行需要大約5秒鐘才能顯示在UITableView
!
而當我在tableView:cellForRowAtIndexPath:
方法中放入一些日誌時,它立即顯示。
而當我將FTPMessageReceived
代碼放入按鈕(例如)中時,UITableView
立即顯示新行!
有什麼建議嗎?
:)是的,它的工作原理。這很簡單,謝謝。 – nouatzi