Немного раздражающих предупреждений, которые все еще позволяют приложению работать, но я хочу их удалить

Я попробовал приложение для проверки связи по Bluetooth. Это простое приложение, которое просто отправляет сообщение в текстовой форме с одного iDevice на другое. Первоначально в этом приложении было около 6 предупреждений, но я исправил все, кроме двух. Они одинаковы, но работают с разными делегатами. Один предназначен для GKPeerPickerControllerDelegate, а другой - для GKSessionDelegate.Скажем, ошибка Picker возникает для GKPeerPickerController с именем picker, когда вы набираете (более полный пример):

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;

}

6
задан mike_r 4 January 2012 в 22:02
поделиться