2010-02-04 18 views

Trả lời

11

Các công trình sau đây đối với tôi, trở về foo:

id myObj = [foo valueForKey: @"self"]; 
+1

đó là mát mẻ! Tôi không biết bạn có thể làm điều đó. =) –

+0

Đồng ý, nó là khá darn mát mẻ, và nó có ý nghĩa rằng bạn có thể yêu cầu nó theo cách này. Có một kịch bản mà đây là lựa chọn duy nhất của bạn, mặc dù? Có lẽ bạn chỉ có thể gửi một truy vấn đường dẫn chính đến một đối tượng mà bạn không có con trỏ đến đối tượng sở hữu của nó? Có vẻ như một tình huống lạ lùng ... –

+0

Vâng, tôi thừa nhận rằng tôi không thể nghĩ ra bất kỳ tình huống thực tế nào mà tôi thực sự cần điều này. Nhưng sự mát mẻ của @ "tự" là sự tồn tại của nó. Tôi đoán nếu bạn gặp trường hợp hiếm hoi, nơi bạn phải phụ thuộc rất nhiều vào KVC, bạn sẽ nợ kỹ sư đã làm một chiếc xe tải. – Costique

3
id myObj = foo; 
+0

Đó là một câu hỏi hoàn toàn hợp lệ về KVC, nhân tiện :) – Costique

+0

Dao cạo của Occam lại xuất hiện. Tôi có xu hướng đồng ý với câu trả lời này - nếu bạn có thể nhận được một con trỏ để nhắn tin cho một đối tượng, chỉ cần sử dụng con trỏ đó. Tôi hiểu điều này có lẽ chỉ là một bài tập học thuật, nhưng tại sao lại dành các chu kỳ về khóa-giá trị quan sát khi câu trả lời là hiển nhiên? –

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