2010-07-06 27 views
6

Trong Mac OSX 10.6, khóa từ điển userInfo NSErrorFailingURLStringKey không còn được dùng nữa vì lợi ích của NSURLErrorFailingURLStringErrorKey. Tôi đang cố gắng viết chương trình của mình để có thể chuyển sang cả Mac OSX 10.5 và 10.6. Trong thời gian này, tôi chỉ sử dụng khóa cũ - nhưng trình biên dịch của tôi đang cho tôi những cảnh báo không dùng nữa.Mã di động cho người dùng không được sử dụngBộ khóa từ điển thông dụng (Cocoa)

// The following causes deprecation warnings 
[[error userInfo] objectForKey:NSErrorFailingURLStringKey] 

// But this one won't work on OSX 10.5 
[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey] 

Cách tốt nhất để viết mã di động để xử lý người dùng không dùng nữaĐọc từ điển là gì?

Trả lời

3

Bạn có thể sử dụng chỉ thị tiền xử lý như sau:

#if defined(MAC_OS_X_VERSION_10_6) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 
    [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey] 
#else 
    [[error userInfo] objectForKey:NSErrorFailingURLStringKey] 
#endif 
+0

Đó là những gì tôi đang tìm kiếm, cảm ơn! –

1

Thử đặt SDK cơ sở thành 10.6 và mục tiêu triển khai thành 10.5.

0

Đối với phiên bản Swift, bạn có thể sử dụng NSURLErrorFailingURLStringErrorKey:

if let url = error?.userInfo[NSURLErrorFailingURLStringErrorKey]{ 
    //code 
} 
Các vấn đề liên quan