Tôi có kinh nghiệm về mã hóa ARC thuần túy. Là một tính năng của trình biên dịch, nó tôn vinh gia đình phương thức Objctive-C đặt quyền giữ lại/phát hành cuộc gọi bất cứ khi nào neeeded.Quy ước đặt tên mục tiêu-C với ARC và các cảnh báo có thể xảy ra
Tất cả các phương pháp bắt đầu bằng alloc
, mutableCopy
, copy
và new
tạo đối tượng mới. Họ tăng số lượng giữ lại. Kết quả là, ARC sẽ giải phóng bất kỳ con trỏ nào (và do đó đối tượng được liên kết với nó) khi tôi không còn cần đến nó nữa.
Tôi nghĩ rằng các vấn đề có thể phát sinh khi tôi viết các phương thức không tuân theo quy ước đặt tên. Ví dụ, nếu tôi viết một phương thức như newCustomer
rằng trong phiên bản đầu tiên trả về một đối tượng tự động phát hành trong khi ở phiên bản thứ hai thì không, điều gì có thể xảy ra?
Đặc biệt, câu hỏi của tôi là như sau (họ thuộc về các lập luận tương tự):
- gì xảy ra nếu sự kêu gọi và được gọi là mã được cả biên soạn với ARC?
- (a) Điều gì sẽ xảy ra nếu mã gọi được biên dịch với ARC trong khi được gọi là được biên dịch với không phải ARC?
- (b) Điều gì sẽ xảy ra nếu mã gọi được biên dịch với không phải ARC trong khi được gọi là được biên dịch với ARC?
Nó sẽ được đánh giá cao một câu trả lời cho thấy cách ARC hoạt động dưới mui xe (objc_release
, objc_retainAutoreleasedReturnValue
, v.v.).
Cảm ơn bạn trước.
'mới' với Mục tiêu-C? –
@ ott-- Xin lỗi, ý của bạn là gì? Cảm ơn. –
1) Đừng làm điều đó. 2) Nếu bạn bỏ qua (1), tôi nghĩ * có một số sửa đổi gạch dưới cho khai báo phương thức có thể được sử dụng để vá mọi thứ. –