この質問を投稿することで、NDA に違反していないことを願っています。
新しいマルチピア接続を使用して、ブルートゥースを使用していくつかのファイルを近くのデバイスに送信しています。招待を送信することはできましたが、ユーザーが招待を受け入れるか辞退できる UIAlertView を表示する方法がわかりません。現在、ユーザーが送信すると、ファイルは自動的に保存され、承認/拒否のアラートは表示されません。
コードは次のとおりです。
- (void) advertiser:(MCNearbyServiceAdvertiser *)advertiser
didReceiveInvitationFromPeer:(MCPeerID *)peerID
withContext:(NSData *)context
invitationHandler:(void(^)(BOOL accept,
MCSession *session))invitationHandler{
... save the data context
しかし、警告があります:
- (void) advertiser:(MCNearbyServiceAdvertiser *)advertiser
didReceiveInvitationFromPeer:(MCPeerID *)peerID
withContext:(NSData *)context
invitationHandler:(void(^)(BOOL accept,
MCSession *session))invitationHandler{
DevicePeer = [MCPeerID alloc];
DevicePeer = peerID;
ArrayInvitationHandler = [NSArray arrayWithObject:[invitationHandler copy]];
// ask the user
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@""
message:@""
delegate:self
cancelButtonTitle:@"NO"
otherButtonTitles:@"YES", nil];
[alertView show];
alertView.tag = 2;
}
およびアラート ビュー メソッド:
- (void) alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex
{
// retrieve the invitationHandler
// get user decision
BOOL accept = (buttonIndex != alertView.cancelButtonIndex) ? YES : NO;
// respond
MCSession *session = [ArrayInvitationHandler objectAtIndex:0];
void (^invitationHandler)(BOOL, MCSession *) = [ArrayInvitationHandler objectAtIndex:0];
invitationHandler(accept, session);
}
ユーザーが [はい] を押すと、アプリがクラッシュし、次のエラーが表示されます。
[__NSMallocBlock__ nearbyConnectionDataForPeer:withCompletionHandler:]: unrecognized selector sent to instance 0x14d4e3b0'
私はIOS開発者ライブラリを調べましたが、他にそのような方法はありません
- (void)nearbyConnectionDataForPeer:(id)arg1 withCompletionHandler:(id)arg2{
}
これは機能しません。IOS 開発者フォーラムに関する情報はありません。何か案は?