setValue:forKey:
เป็นส่วนหนึ่งของโปรโตคอลNSKeyValueCodingซึ่งช่วยให้คุณสามารถเข้าถึงคุณสมบัติของวัตถุจากไลค์ของเครื่องมือสร้างส่วนต่อประสาน setValue:forKey:
จะดำเนินการในชั้นเรียนอื่น ๆ NSDictionary
กว่า
setObject:forKey:
เป็นNSMutableDictionary's
เหตุผลที่มีอยู่ ลายเซ็นของมันเกิดขึ้นค่อนข้างคล้ายกับ setValue: forKey :, แต่จะเป็นแบบทั่วไปมากกว่า (เช่นชนิดของคีย์ใด ๆ ) มันค่อนข้างบังเอิญว่าลายเซ็นนั้นคล้ายคลึงกันมาก
สิ่งที่เพิ่มความสับสนคือการใช้ NSMutableDictionary setValue:forKey:
เทียบเท่ากับsetObject:forKey:
ในกรณีส่วนใหญ่ ในคลาสอื่นให้setValue:forKey:
เปลี่ยนตัวแปรสมาชิก ในNSMutableDictionary
มันจะเปลี่ยนรายการพจนานุกรมเว้นแต่คุณจะใส่คำนำหน้าคีย์ด้วยอักขระ '@' ซึ่งในกรณีนี้จะแก้ไขตัวแปรสมาชิก
ดังนั้นในการสรุปการใช้setObject:forKey:
เมื่อคุณจำเป็นต้องทำงานด้วยปุ่มพจนานุกรมและค่านิยมและsetValue:forKey:
ในกรณีที่หายากที่คุณต้องการที่จะแก้ไขปัญหาKVP
แก้ไข: และโอ้ดูเหมือนว่ามีการถามและตอบก่อนหน้านี้: ความแตกต่างระหว่าง objectForKey และ valueForKey?