2014-06-23 4 views
0

나는 제대로 텍스트를 보내는 Multipeer 연결 프레임 워크WiFi/블루투스로 어레이를 보내려면 어떻게해야합니까?

를 사용하지만 다른 데이터

보내기 - 텍스트 보낼 수 :

NSData *dataToSend = [_txtMessage.text dataUsingEncoding:NSUTF8StringEncoding]; 
NSArray *allPeers = _appDelegate.mcManager.session.connectedPeers; 
NSError *error; 

[_appDelegate.mcManager.session sendData:dataToSend 
           toPeers:allPeers 
           withMode:MCSessionSendDataReliable 
            error:&error]; 

if (error) { 
    NSLog(@"%@", [error localizedDescription]);  
} 

[_txtMessage setText:@""]; 
[_txtMessage resignFirstResponder]; 

-Receive 텍스트 :

-(void)didReceiveDataWithNotification:(NSNotification *)notification{ 
    MCPeerID *peerID = [[notification userInfo] objectForKey:@"peerID"]; 
    NSString *peerDisplayName = peerID.displayName; 

    NSData *receivedData = [[notification userInfo] objectForKey:@"data"]; 
    NSString *receivedText = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding]; 

} 

NSMutableArray *arraySongs; 을 그러나 배열을 보내고받는 방법은 무엇입니까? 서식 및 연속성에 대한 코멘트에서 추가 내 나쁜 영어

죄송

:

MPMediaQuery *everything = [[MPMediaQuery alloc] init]; 
NSLog(@"Logging items from a generic query..."); 
NSArray *itemsFromGenericQuery = [everything items]; 
for (MPMediaItem *song in itemsFromGenericQuery) { 
    NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle]; 
    NSString *artist = [song valueForProperty:MPMediaItemPropertyArtist]; 
    long totalPlaybackTime = [[song valueForProperty: MPMediaItemPropertyPlaybackDuration] longValue]; 
    [arraySongs addObject:song]; 
} 

형 배열

MPMediaQuery * todo = [[alloc MPMediaQuery] init]; 

NSLog (@ "elementos 드 registro 드 우나 CONSULTA 년 Generica .. . "); NSArray * itemsFromGenericQuery = [Elementes de muebles]; for (MPMediaItem * can 항목들 --FromGenericQuery) {NSString * songtitle = [canción valueForProperty : MPMediaItemPropertyTitle]; NSString * artista = [canción valueForProperty : MPMediaItemPropertyArtist]; largo totalPlaybackTime = [[canción valueForProperty : MPMediaItemPropertyPlaybackDuration] longValue]; [ArraySongs addObject : 노래]; }

+0

'NSArray'에는 어떤 종류의 객체가 들어 있습니까? – zaph

+0

MPMediaQuery * everything = [[MPMediaQuery alloc] init]; NSLog (@ "일반 쿼리의 항목 로깅 ..."); NSArray * itemsFromGenericQuery = [모든 항목]; for (MPMediaItem * 노래 in itemsFromGenericQuery) { NSString * songTitle = [song valueForProperty : MPMediaItemPropertyTitle]; NSString * 아티스트 = [song valueForProperty : MPMediaItemPropertyArtist]; long totalPlaybackTime = [[song valueForProperty : MPMediaItemPropertyPlaybackDuration] longValue]; [arraySongs addObject : song]; } – user3661423

+0

질문을 편집하여 자세한 정보, 코드를 추가 할 수 있습니다. 질문에 위의 주석 코드를 추가했습니다. – zaph

답변

0

당신은 JSONObjectWithData:options:error:와 함께 NSArray
복원 데이터를 전송 dataWithJSONObject:options:error:
NSArray JSON 데이터를 직렬화 할 수 있습니다.

NSArray의 모든 구성 요소가 JSON 직렬화에 의해 지원된다고 가정합니다.

더 복잡한 개체가있는 배열의 경우 NSArchiver을 사용하고 해당 프로토콜을 아직 구현하지 않은 모든 개체에 NSCoding에 대한 지원을 추가하십시오.

MPMediaItem은 NSCoding을 준수하므로 NSArchiver이나 JSON으로 직렬화 할 수 있습니다.

+0

'MPMediaItem'은'NSCoding'을 따르므로'NSArchiver'하지만 JSON으로 직렬화 할 수 있습니다. – zaph