Tôi đang cố chuyển đổi dự án cũ sang ARC. Tôi có một chức năng mà tạo ra UUIDs, nhưng dường như đây không còn được hỗ trợ khi sử dụng ARC:NSMakeCollectable và ARC không hoạt động
NSString *uuid = nil;
CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault);
if (theUUID) {
uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID));
//[uuid autorelease];
CFRelease(theUUID);
}
tôi nhận được lỗi biên dịch (khi cố gắng để chuyển đổi): 'NSMakeCollectable' không có sẵn: không có sẵn trong tính tham khảo tự động chế độ.
Vì vậy, câu hỏi của tôi là: làm cách nào để tạo UUID khi sử dụng ARC? Có cách nào khác mà tôi nên sử dụng không?
Điều này sẽ rò rỉ UUID vì nó có thêm 'CFRetain' được đính kèm từ lệnh' Create'. –
bạn có thể sử dụng CFRelease để phát hành – IPaPa
CFRelease những gì? Bạn đã gán nó cho một '' id', mà không còn có thể được chuyển trực tiếp đến 'CFRelease()'. Bạn có thể bỏ nó trở lại, nhưng đó là chiến đấu với ARC. Đây là những gì 'CFBridgingRelease()' và '__bridge_transfer' tương đương được xây dựng để giải quyết. –