Đầu tiên tôi thú nhận sự thiếu hiểu biết của mình, tôi đã học được mọi thứ tôi biết về Objective-C trong vài tháng tôi đã làm việc trong dự án của mình. Tôi cũng tìm thấy nó hoàn toàn bực bội như thế nào Objective-C dường như phức tạp những gì sẽ là những vấn đề đơn giản trong bất kỳ ngôn ngữ khác mà tôi đã làm việc với. Câu hỏi này là một trường hợp ...Cách kiểm tra giá trị null trong NSNumber
Trong lần chạy đầu tiên, ứng dụng của tôi tải xuống một loạt JSON mà nó sử dụng để điền một kho lưu trữ CoreData. Tôi sử dụng một thư viện Obj-C/JSON (CJSONDeserializer) để chuyển đổi JSON thành NSArrays. Trong bản tải xuống JSON cho một thực thể CoreData có một trường có chứa một số ("show_id":2
) xác định trường có liên quan trong một thực thể khác nếu có một hoặc null ("show_id":null
) nếu không. Trong việc xử lý lĩnh vực mà tôi gán nó vào một NSNumber sử dụng ...
NSNumber *shoIndex = [[item objectForKey:typeKey] objectForKey:@"show_id"];
sau đó tôi cố gắng để kiểm tra xem tôi có một số hợp lệ trước khi cố gắng lấy & liên kết biểu ghi liên quan để không làm lãng phí chế biến, nơi có không có hồ sơ liên quan.
Chất vấn shoIndex
với ...
NSLog(@"shoIndex: %i, %@, %@", shoIndex, shoIndex, [shoIndex description]);
Cung cấp cho ...
shoIndex: 19590600, <null>, <null>
trong đó giá trị JSON là null
& ...
shoIndex: 228300880, 51, 51
khác.
Cho đến nay việc kiểm tra thành công duy nhất mà tôi đã thực hiện là với ...
if (![[shoIndex description] isEqualToString:@"<null>"]) {
bất cứ ai có thể đề xuất một cách tốt hơn?
Update ...
Nhìn vào nó một cách khác shoIndex
được gán như một NSNumber
rằng đôi khi chứa một giá trị NSString
@"<null>"
. Liệu Obj-C có cái gì đó giống như một toán tử isa
mà tôi có thể sử dụng để kiểm tra loại nội dung của shoIndex
?
TIA, Pedro.
Điều gì làm cho bạn nghĩ rằng đối tượng là một thể hiện của 'NSNumber'? – jlehr