Tôi đã thử một ứng dụng để kiểm tra giao tiếp bluetooth. Nó là một ứng dụng đơn giản mà chỉ cần gửi một tin nhắn ở dạng văn bản từ một iDevice khác. Ban đầu, ứng dụng này có khoảng 6 cảnh báo nhưng tôi đã sửa tất cả trừ hai cảnh báo. Họ là như nhau nhưng đối phó với các đại biểu khác nhau. Một là dành cho GKPeerPickerControllerDelegate và một cho GKSessionDelegate. Nói lỗi Picker là cho GKPeerPickerController tên bảng chọn, khi bạn gõ (hoàn chỉnh hơn ví dụ để làm theo):Một chút cảnh báo gây phiền nhiễu mà vẫn cho phép ứng dụng hoạt động nhưng muốn xóa
picker.delegate = self;
trình biên dịch nói:
Đi qua '* const ___ mạnh' để tham số của loại tương thích ' ID'.
Đối với tên phiên GKSession, gõ
session.delegate = self;
làm cho trình biên dịch nói:
Sending '* const ___ mạnh' để tham số của loại tương thích 'id'.
Chỉ bật trong nút để gửi và peerPickerController. Tôi biết rằng những cảnh báo này không cản trở khả năng hoạt động của ứng dụng nhưng tôi muốn cập nhật hoàn toàn điều này cho Xcode 4.2. Ứng dụng này ban đầu được viết cho Xcode khi iOS 3.0 mới. Có, tôi hơi cầu kỳ khi nói đến viết hoặc thực hành mã, nó không được chứa bất kỳ lỗi/cảnh báo nào khi có thể.
Đây là những khối mã nơi cảnh báo xảy ra:
-(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:
Phần header có này:
@interface BTViewController : UIViewController{
GKSession *currentSession;
IBOutlet UITextField *txtMessage;
IBOutlet UIButton *connect;
IBOutlet UIButton *disconnect;
GKPeerPickerController *picker;
}
+1 cho cố gắng loại bỏ tất cả các cảnh báo cuối cùng ** **! –
Cảm ơn, tôi luôn cố gắng đảm bảo rằng những gì tôi viết không có vấn đề gì. Lập trình cho iOS là khác với Windows, mà tôi cũng làm cho công việc. Mã số –
biên dịch gọn gàng với '-Wall' luôn có ít vấn đề hơn cách khác. –