我有一个自定义NSObject
类,做一些 FTP 工作(显示、传输......)。
这个 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;
因此,当 FTP 类中的 downloadFiles: 方法想要在 中显示一些消息时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
立即显示新行!
有什么建议吗?