2011-08-15 32 views
10

Tôi đang cố chuyển đổi CFUUIDRef thành NSString *.Số nhận dạng không khai báo __bridge trên xcode

Trước đó, tôi đã sử dụng mã sau và đã hoạt động tốt.

CFStringRef str = CFUUIDCreateString(NULL, _uuid); # _uuid is of type CFUUIDRef 
return (__bridge NSString *) str; 

Tuy nhiên, sau khi một bản cập nhật gần đây trên Xcode (? Hay điều khác mà tôi không để ý), các mã trên mang lại cho tôi những lỗi:

Sử dụng định danh chưa được khai báo '__bridge'

Vì vậy, tôi đã làm điều gì sai? Làm thế nào tôi có thể giải quyết nó?

=== CẬP NHẬT ===

Mã đầy đủ:

+ (NSString *)uuidToString:(CFUUIDRef)_uuid { 
    CFStringRef str = CFUUIDCreateString(NULL, _uuid); # _uuid is of type CFUUIDRef 
    return (__bridge NSString *) str; 
} 

Các uuid được tạo ra bởi:

uuid = CFUUIDCreate(NULL); 
+0

Bạn đã bật ARC chưa? – Wevah

+0

Nó phàn nàn rằng ARC không cho phép chuyển đổi ... Tôi rất mới để xocde và không biết làm thế nào để chuyển nó trên cũng không làm thế nào để kiểm tra xem nó thực sự là trên. – PeterWong

+0

Bật ARC trở lại, nếu bạn muốn sử dụng và hiển thị cho chúng tôi mã đầy đủ mà nó phàn nàn. –

Trả lời

20

__bridge chỉ được định nghĩa với ARC (Automatic Đếm tham khảo) đã bật. Nó được sử dụng để "chuyển các đối tượng vào và ra khỏi điều khiển ARC". (Source)

Để bật ARC, hãy chuyển đến cài đặt bản dựng của bạn và đặt Objective-C Automatic Reference Counting thành Yes.

Hoặc, nếu bạn không muốn sử dụng ARC, chỉ cần xóa __bridge và nó sẽ hoạt động tốt.

+1

Xin chào Tôi đã sử dụng câu trả lời được cung cấp tại đây: http://stackoverflow.com/questions/9342225/how-to-check-network-provider-name-in-ios-programming/9342559#comment11800200_9342559 Nhưng nhận được lỗi. Xem nhận xét của tôi gắn liền với câu trả lời đó. Bạn có thể vui lòng giúp tôi không. – Mrunal

Các vấn đề liên quan