File Owner และ First Responder ใน iOS - Xcode คืออะไร


คำตอบ:


170

File Owner เป็นอ็อบเจ็กต์รันไทม์ที่สร้างอินสแตนซ์ซึ่งเป็นเจ้าของเนื้อหาของปลายปากกาของคุณและช่องทาง / การดำเนินการเมื่อโหลดหัวปากกา อาจเป็นตัวอย่างของคลาสใดก็ได้ที่คุณต้องการ - ดูที่แท็บเอกลักษณ์ของจานเครื่องมือ

File Owner เป็นลิงก์หลักระหว่างรหัสแอปพลิเคชันของคุณและเนื้อหาของไฟล์ nib

ตัวอย่างเช่นพิจารณาว่าคุณมีคลาสย่อย UIViewController ที่มี IBOutlet สำหรับ UILabel ในตัวสร้างอินเทอร์เฟซเจ้าของไฟล์จะถูกตั้งค่าเป็นคลาสเดียวกับ UIViewController ของคุณ เมื่อปลายปากกาของคุณถูกโหลดที่รันไทม์การเชื่อมโยงของร้านค้าและการดำเนินการที่กำหนดไว้ในปลายปากกาของคุณจะถูกผูกไว้กับอินสแตนซ์ของตัวควบคุมมุมมองของคุณเนื่องจากตัวควบคุมมุมมองของคุณเป็นเจ้าของ

ไส้ปากกาถูกโหลดโดยใช้:

[[NSBundle mainBundle] loadNibNamed:@"NibName" owner:nil options:nil];

พารามิเตอร์เจ้าของมีความสำคัญอย่างยิ่ง นั่นคืออินสแตนซ์รันไทม์ของคลาสที่เป็นเจ้าของเนื้อหา (ช่องทางการดำเนินการและวัตถุ) ของปลายปากกาที่กำลังโหลด

หวังว่าจะชัดเจน หากต้องการดูสิ่งนี้ในที่ทำงานสร้างโครงการ iPhone ใหม่พร้อมตัวควบคุมมุมมอง เปิดไฟล์ Nib และดูที่แท็บ identity

การตอบกลับครั้งแรกเป็นเพียงวัตถุแรกในสายการตอบกลับที่สามารถตอบสนองต่อเหตุการณ์ต่างๆ ห่วงโซ่การตอบกลับคือคอลเล็กชันรันไทม์ (หรือลำดับชั้นที่แม่นยำกว่า) ของออบเจ็กต์ที่สามารถตอบสนองต่อเหตุการณ์ได้ ตัวอย่างเช่นพิจารณาว่าคุณมีหน้าต่างที่มีมุมมองและในมุมมองนั้นเป็นช่องข้อความ

หากช่องข้อความนั้นมีโฟกัสจะเรียกว่าผู้ตอบกลับคนแรกในห่วงโซ่ ดังนั้นหากคุณส่งข้อความไปยังผู้ตอบกลับคนแรกระบบจะส่งข้อความไปที่ช่องข้อความก่อน หากช่องข้อความไม่สามารถรองรับข้อความได้ระบบจะส่งไปยังผู้ตอบกลับคนถัดไปตอบกลับต่อไปและต่อไป และถัดไปจนกว่าคุณจะไปถึงจุดสิ้นสุดของห่วงโซ่การตอบกลับหรือบางสิ่งบางอย่างได้ใช้งานเหตุการณ์ (iirc)

ห่วงโซ่การตอบกลับเป็นสิ่งที่ควรค่าแก่การอ่าน - กดเอกสารของ Apple เพื่อดูข้อมูลเพิ่มเติม


1
@dannywartnaby: รายละเอียด !! +1
Jayprakash Dubey

1
คำอธิบายที่ดี!
TMin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.