Tôi đang làm một hướng dẫn giỏ hàng: Tôi có một mảng thu thập đầu vào từ một trường văn bản và sau đó hiển thị nó trong NSTableView. Bạn có thể kiểm tra một mục và xóa nó khỏi danh sách. Tôi muốn hiển thị cảnh báo chỉ khi có nội dung nào đó được chọn. Vì vậy, tôi có điều này:Cảnh báo "Chuyển đổi ngầm định mất độ chính xác nguyên ..."
-(IBAction)removeItemFromShoppingList:(id)sender {
int selectedItemIndex = [shoppingListTableView selectedRow];
if (selectedItemIndex == -1) return;
NSAlert *alert = [[NSAlert alloc] init];
...
[alert runModal];
[alert release];
}
On line 2 đây (int selectedItemIndex...
) tôi nhận được một cảnh báo màu vàng: chuyển đổi ngầm mất nguyên chính xác:’NSInteger’ (aka ‘dài’) để ‘int’.
Tại sao?
Có thể vì int ngắn hơn một thời gian dài? –
Ngoài ra, bạn chỉ nên xem cảnh báo này khi xây dựng trình mô phỏng vì NSInteger là 32 bit khi xây dựng cho thiết bị. Như những người khác đã nói, bạn nên sử dụng các loại chính xác tương tự hoặc một cách rõ ràng đúc để nói "Tôi biết cho một thực tế này sẽ không bao giờ lớn hơn 32 byte". –
Ý của bạn là "chỉ xây dựng cho trình giả lập"? (Nó dành cho ứng dụng Mac chứ không phải iOS) – janeh