Я поставил его туда, где музыка может быть отправлен туда и обратно между устройствами IOS, но всякий раз, когда музыка передается, принимающий телефон получает эту ошибку:Передача музыки в прошивкой через Bluetooth
*** Terminating app due to uncaught exception 'MPMediaItemCollectionInitException', reason: 'items array must not be empty' *** First throw call stack:
Это метод, в котором я получаю сообщение об ошибке:
-(void)didReceiveDataWithNotification: (NSNotification *)notification{
MCPeerID *peerID = [[notification userInfo] objectForKey:@"peerID"];
NSString *peerDisplayName = peerID.displayName;
NSData *receivedData = [[notification userInfo] objectForKey:@"data"];
//NSLog([[notification userInfo] objectForKey:@"data"]);
NSDictionary *dict = (NSDictionary *)[NSKeyedUnarchiver unarchiveObjectWithData:receivedData];
NSString *datatype = [dict objectForKey:@"datatype"];
NSLog(@"hi");
if([datatype isEqualToString:@"musiclist"]){
count++;
MPMediaItemCollection *collectionFromPeer = [[MPMediaItemCollection alloc] initWithItems:[(MPMediaItemCollection*)[dict objectForKey:@"data"] items]];
[_listOfMusic addObjectsFromArray:[collectionFromPeer items]];
if(count == [[_appDelegate.mcManager.session connectedPeers] count] + 1){
for(int i=0;i<[_listOfMusic count];i++){
int r1 = arc4random() % [_listOfMusic count];
int r2 = arc4random() % [_listOfMusic count];
[_listOfMusic exchangeObjectAtIndex:r1 withObjectAtIndex:r2];
}
MPMediaItemCollection *coll = [[MPMediaItemCollection alloc]initWithItems:_listOfMusic];
[_musicPlayer setQueueWithItemCollection:coll];
NSLog(@"hi3");
[_musicPlayer play];
}
}
}
Что не так с этим или что вызывает эту ошибку?
Какое из двух вызовов 'initWithItems:' не работает? Какую отладку вы сделали, чтобы убедиться, что 'dict' содержит данные, которые ваш код предполагает? – rmaddy
@rmaddy Он не работает и выбрасывает эту ошибку при назначении dict – user2537376
С другой стороны кода, когда я отправляю данные, я распечатываю данные, которые он отправляет, прямо перед отправкой, и это правильные данные перед этим отправляется – user2537376