Я опробовал приложение для проверки связи Bluetooth.Это простое приложение, которое просто отправляет сообщение в текстовом виде от одного iDevice к другому.Первоначально в этом приложении было около 6 предупреждений, но я исправил все, кроме двух.Они одинаковы, но имеют дело с разными делегатами.Один для GKPeerPickerControllerDelegate, а другой для GKSessionDelegate.Скажем, ошибка Picker связана с именованным средством выбора GKPeerPickerController, когда вы набираете (более полный пример для подражания):
picker.delegate = self;
компилятор говорит:
Передача * const ___ strongпараметр несовместимого типа 'id'.
Для сеанса с именем GKSession, набрав
session.delegate = self;
, компилятор скажет:
Отправка '*const___strong к параметру несовместимого типа id.
Они появляются только в кнопках отправки и peerPickerController.Я знаю, что эти предупреждения не препятствуют функционированию приложения, но я хотел бы полностью обновить это для Xcode 4.2.Это приложение было изначально написано для Xcode, когда iOS 3.0 была новой.Да, я немного придирчив, когда дело доходит до написания или отработки кода, он не должен содержать ошибок / предупреждений, когда это возможно.
Это блоки кода, в которых возникает предупреждение:
-(IBAction)btnConnect:(id)sender{
picker = [[GKPeerPickerController alloc] init];
picker.delegate = self; //Warning here
picker.connectionTypesMask = GKPeerPickerConnectionTypeNearby;
[connect setHidden:YES];
[disconnect setHidden:NO];
[picker show];
}
-(void)peerPickerController:(GKPeerPickerController *)PCpicker didConnectPeer:(NSString *)peerID toSession:(GKSession *)session{
self.currentSession = session;
session.delegate = self; //Warning here
[session setDataReceiveHandler:self withContext:nil];
PCpicker.delegate = nil;
[PCpicker dismiss];
}
Редактировать:
В заголовке есть это:
@interface BTViewController : UIViewController{
GKSession *currentSession;
IBOutlet UITextField *txtMessage;
IBOutlet UIButton *connect;
IBOutlet UIButton *disconnect;
GKPeerPickerController *picker;
}