UITableView使用NSMutableArray显示动态内容
一直在寻找解决方案很长一段时间,但仍然没有成功,也许这里有人可以帮助我。
我创建了一个应用程序,该应用程序运行一个与后台网络服务器通信的线程。有时,线程会收到我想要在 UITableView 中显示的信息。由于内容的动态性质,我决定 NSMutableArray 应该足以存储来自网络服务器的信息。
每当我从网络服务收到信息时,我的 AppDelegate 都会发送一条通知。我的 UITableView 注册以接收我打算在 UITableView 中显示的某些类型的信息。
UITableViewController 的 initWithStyle 方法包含以下代码:
- (void)addContact:(NSNotification *)note {
NSLog(@"%@", [note object]);
NSString *message = (NSString *)[note object];
NSString *name = [[message componentsSeparatedByString:@":"] objectAtIndex:2];
contact = name;
[array addObject:contact];
}
- (void)viewDidLoad {
[super viewDidLoad];
array = [[NSMutableArray alloc] initWithObjects:@"test1", @"test2", nil];
tv.dataSource = self;
tv.delegate = self;
self.tableView = tv;
}
AddContact 中的数组包含 TableView 中显示的数据。我在 ViewDidLoad: 中手动添加到数组中的所有数据都会显示在表中,但在 AddContact: 方法中添加的数据不会出现这种情况。
有人知道我做错了什么吗?
Been looking for a solution for a long while now, but still no success, perhaps someone here can help me.
I created an application that runs a thread that communicates with a webserver in the background. Occasionally the thread receives information that I'd like to display in a UITableView. Because of the dynamic nature of the content I decided a NSMutableArray should be sufficient to store the information from the webserver.
Whenever I receive information from the webservice my AppDelegate sends a notification. My UITableView registers to receive certain kinds of information which I intend to show in the UITableView.
The initWithStyle method of the UITableViewController contains the following code:
- (void)addContact:(NSNotification *)note {
NSLog(@"%@", [note object]);
NSString *message = (NSString *)[note object];
NSString *name = [[message componentsSeparatedByString:@":"] objectAtIndex:2];
contact = name;
[array addObject:contact];
}
- (void)viewDidLoad {
[super viewDidLoad];
array = [[NSMutableArray alloc] initWithObjects:@"test1", @"test2", nil];
tv.dataSource = self;
tv.delegate = self;
self.tableView = tv;
}
The array in AddContact contains the data displayed in the TableView. All data I manually add to the array in ViewDidLoad: will be shown in the table, but it doesn't happen for the data added in the AddContact: method.
Anyone got an idea what I'm doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
更新是否发生在主线程上?
您可以使用这种刷新功能来确保它确实有效。
}
Is the update happening on the main thread?
You can use this sort of refresh function to make sure it does.
}