【发布时间】:2023-03-19 01:42:02
【问题描述】:
当我从套接字接收数据并通过 NSNotificationCenter 将数据传递给另一个 VC 时,传递的对象总是记录 (null),尽管该对象存在于另一个类中。
这是我传递数据的地方。
更新:
-(void) initSIOSocket {
[SIOSocket socketWithHost:@"http://192.168.1.4:8080" response:^(SIOSocket *socket) {
self.socket = socket;
NSLog(@"%@ from initSIOSocket", self.socket);
[self.socket on:@"q_update_B" callback:^(NSArray *args) {
NSArray *tracks = [args objectAtIndex:0];
[[NSNotificationCenter defaultCenter] postNotificationName:@"qUpdateB" object:nil userInfo:[NSDictionary dictionaryWithObject:tracks forKey:@"tracksData"]];
}];
..
- (void)receiveUpdateBNotification:(NSNotification *)notification
{
// Do parse respone data method and update yourTableViewData
NSArray *tracks = [[notification userInfo] objectForKey:@"tracksData"];
NSLog(@"%@", tracks);
self.tracks = tracks;
[self.tableView reloadData];
}
控制台仍然记录为(空)对象。通知成功,没有数据发送。
【问题讨论】:
-
您可以尝试像这样初始化您的轨道数组:
NSArray *tracks = [[NSArray alloc] initWithArray:[args objectAtIndex:0]];。因为我怀疑 track 数组正在被释放。 -
仍然无法工作@AdilSoomro
-
你可以试试
NSLog(@"userInfo: %@", notification.userInfo);
标签: ios objective-c sockets nsnotificationcenter