Dưới đây là một khối mã, nghĩa vụ phải kiểm tra xem một từ điển có rỗng hay không, và nếu không, hãy rút ra đối tượng đúng. Tuy nhiên, vì một lý do nào đó, mặc dù việc kiểm tra if
không thành công, mã vẫn thực thi. Có một số quirk với cách NSNull
hoạt động mà tôi không hiểu, hoặc đây là một lỗi của Apple?Kiểm tra sự bình đẳng với NSNull
if (svcUser && !(svcUser == (id)[NSNull null])) {
return [svcUser objectForKey:@"access_level"];
}
điều khiển phản ứng:
(lldb) print svcUser && !(svcUser == (id)[NSNull null])
(bool) $0 = false
(lldb) continue
-[NSNull objectForKey:]: unrecognized selector sent to instance 0x2b51678
Hãy thử phá vỡ các ngoại lệ và đảm bảo rằng "công cụ chọn không được nhận ra" đang được ném vào nơi bạn cho rằng đó là http://developer.apple.com/library/mac/recipes/xcode_help- breakpoint_navigator/articles/adding_an_exception_breakpoint.html –
Bạn đã bao giờ tìm ra những gì đang xảy ra ở đây? –
Lời giải thích dứt khoát ---> http://nshipster.com/nil/ –