Khi tôi tạo đối tượng mô hình cho thực thể của mình trong CoreData ở chế độ ARC, nó tạo ra giữ lại thay thế hoặc mạnh. Vì vậy, giữ lại công việc và biên dịch trong chế độ ARC cũng? Tôi nghĩ ở chế độ ARC, chúng tôi không thể sử dụng bản phát hành, tự động phát hành và giữ lại từ khóa?Đối tượng mô hình CoreData trong ARC sử dụng giữ lại
Trả lời
Bạn có nghĩa là nó tạo ra tuyên bố @property
như thế này không?
@property (nonatomic, retain) MyObject *object;
retain
thuộc tính đặc tính có nghĩa là strong
trong ARC.
Thật tuyệt, nhưng không thực sự trả lời câu hỏi, tôi thích anh chàng này đã tạo ra một dự án bằng ARC, và khi thêm Dữ liệu cốt lõi vào hỗn hợp, NSManagedObjects đang được tạo ra với các thuộc tính sử dụng giữ lại, không mạnh. Mặc dù điều này không hợp pháp trong một dự án ARC, trừ khi được quy định khác là phần không phải ARC của dự án, đây là một sự kiện lạ. Nó nên được dự kiến sẽ sử dụng mạnh mẽ không giữ lại, hoặc ít nhất là trình biên dịch nên phàn nàn rằng nó không phù hợp với quy tắc ARC ... Bất kỳ suy nghĩ khác – Daniel
ARC không cấm việc sử dụng từ khóa 'giữ lại'. Nó cấm sử dụng bộ chọn 'giữ lại'. Từ khóa và bộ chọn hoàn toàn khác nhau. Xem §7.1.1 của tài liệu tôi đã liên kết. –
Cảm ơn thông tin bổ sung – Daniel
Xin hãy kiểm tra câu trả lời này: https://stackoverflow.com/a/10036821/662605
Các ý chính của nó là nếu bạn @synthesize
tài sản của bạn, sau đó mã được tạo dưới mui xe sẽ dựa vào retain
loại (retain
, assign
, copy
).
tạo Quản lý lớp con Object sử dụng @dynamic
không @synthesize
, tất cả các công cụ này đang xảy ra một cách kỳ diệu cho bạn, vì vậy trên thực tế, mặc dù cũng rất lúng túng, từ khóa retain
không được sử dụng nó sẽ có vẻ, do đó ARC không hề phàn nàn .. Tôi khá chắc chắn đó là nó.
Mặc dù tôi đã cố gắng để trao đổi việc thực hiện sử dụng @synthesize
và vẫn không nhận lỗi, nhưng tôi nghĩ chúng tôi có thể vào một cái gì đó với câu trả lời đó vào liên kết
Bất kỳ cái nhìn khác sẽ được tốt đẹp.
hmm điều này thật đáng ngạc nhiên, không có phản hồi? – theiOSguy