Ho provato un'app per testare le comunicazioni Bluetooth. È una semplice app che invia semplicemente un messaggio in forma di testo da un iDevice all'altro. Originariamente, questa app aveva circa 6 avvisi, ma ho risolto tutti tranne due. Sono gli stessi ma si occupano di diversi delegati. Uno è per GKPeerPickerControllerDelegate e l'altro per GKSessionDelegate. Dire l'errore Picker è per la GKPeerPickerController chiamato selettore, quando si digita (esempio più completo a seguire):Un po 'di fastidiosi avvisi che continuano a far funzionare l'app ma che voglio rimuovere
picker.delegate = self;
il compilatore dice:
Passando '* const ___ forte' al parametro di tipo incompatibile ' id'.
Per il nome della sessione GKSession, digitando
session.delegate = self;
rende il compilatore dicono:
Invio '* const ___ forte' al parametro di tipo incompatibile 'id'.
Questi compaiono solo nel pulsante per inviare e peerPickerController. So che questi avvertimenti non impediscono la capacità di funzionamento dell'app, ma vorrei aggiornarlo completamente per Xcode 4.2. Questa app è stata originariamente scritta per Xcode quando iOS 3.0 era nuovo. Sì, sono un po 'schizzinoso quando si tratta di scrivere o praticare codice, non deve contenere errori/avvertenze quando possibile.
Questi sono i blocchi di codice in cui si verificano l'avvertimento:
-(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];
}
Edit:
L'intestazione ha questo:
@interface BTViewController : UIViewController{
GKSession *currentSession;
IBOutlet UITextField *txtMessage;
IBOutlet UIButton *connect;
IBOutlet UIButton *disconnect;
GKPeerPickerController *picker;
}
+1 per aver tentato di rimuovere ogni ultimo avvertimento ** **! –
Grazie, cerco sempre di assicurarmi che ciò che scrivo non abbia problemi. La programmazione per iOS è diversa da Windows, che faccio anche per lavoro. Il codice –
che compila clean con '-Wall' ha sempre meno problemi di altri. –