5
Nếu tôi có các đoạn mã sau:Điều tra nhanh có đánh giá biểu thức thu thập trên mỗi lần lặp lại không?
for (UIView *view in [myArray copy])
Điều đó có nghĩa rằng tôi đang gửi thông điệp copy
để myArray
trên mỗi lần lặp, hoặc Objective-C là đủ thông minh để làm copy
chỉ một lần, và sử dụng nó cho toàn bộ vòng lặp?
Không khó giải thích chút nào. Bạn đã hỏi câu hỏi này rất rõ ràng! – matt
Câu trả lời là 'copy' chỉ được thực hiện một lần. Biểu thức bên phải được đánh giá trước khi hoạt động 'in' được khởi tạo. –
So sánh http://stackoverflow.com/questions/3882254/objective-c-for-each-fast-enumeration-evaluation-of-collection hoặc http://stackoverflow.com/questions/12281461/is-this-an- không hiệu quả-cách-sử-dụng-liệt kê nhanh. –