Swift : ผู้รับมอบสิทธิ์

Apr 03 2023
การเรียนรู้เกี่ยวกับผู้รับมอบสิทธิ์บางครั้งอาจเป็นเรื่องที่ท้าทาย ฉันรู้เพราะฉันเคยไปที่นั่น! ต่อไปนี้เป็นบันทึกบางส่วนที่ฉันจดไว้เมื่อเรียนรู้เกี่ยวกับผู้รับมอบสิทธิ์ หวังว่าสิ่งนี้จะช่วยคุณที่กำลังประสบปัญหากับหัวข้อนี้ได้เช่นกัน

การเรียนรู้เกี่ยวกับผู้รับมอบสิทธิ์บางครั้งอาจเป็นเรื่องที่ท้าทาย ฉันรู้เพราะฉันเคยไปที่นั่น! ต่อไปนี้เป็นบันทึกบางส่วนที่ฉันจดไว้เมื่อเรียนรู้เกี่ยวกับผู้รับมอบสิทธิ์ หวังว่าสิ่งนี้จะช่วยคุณที่กำลังประสบปัญหากับหัวข้อนี้ได้เช่นกัน

ผู้แทนคืออะไรและทำงานอย่างไร?

เอาล่ะ ก่อนที่เราจะเข้าสู่การมอบสิทธิ์ ก่อนอื่นเราต้องเข้าใจว่ารูปแบบการมอบสิทธิ์คืออะไร

การมอบหมายเป็นรูปแบบการออกแบบที่ช่วยให้เราสามารถมอบ / มอบหมายความรับผิดชอบบางอย่างของ 'คลาส' ให้กับอินสแตนซ์ของคลาสอื่นได้

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

สังเกตรูปแบบตรงนั้นไหม? การมอบหมายงานในโลกแห่งความเป็นจริงหมายถึงการมอบหมายงานให้กับผู้อื่น ในการเขียนโปรแกรมอย่างรวดเร็วก็เช่นเดียวกัน คลาสหนึ่งสามารถมอบหมายงานบางอย่างให้กับคลาสอื่นได้

สิ่งนี้สามารถเห็นได้เมื่อเราใช้ TableView ใน ViewController ซึ่งเรามักจะปรับตัวควบคุมมุมมองให้สอดคล้องกับโปรโตคอลของ UITableViewDelegate

ViewController สอดคล้องกับ UITableViewDelegate

ตอนนี้คุณได้เรียนรู้เกี่ยวกับ Delegate ใน Swift แล้ว
คำถามอื่นที่มักเกิดขึ้นจากหัวข้อผู้ร่วมประชุมคือการใช้ตนเอง
นำตัวอย่างโค้ดนี้มาลงที่นี่

ที่นี่เรากำลังกำหนดผู้รับมอบสิทธิ์ TableView ให้กับตัวควบคุมมุมมองปัจจุบัน แล้วทำไมเราต้องทำสิ่งนี้และควรทำอย่างไร? เมื่อเราแนบ ViewController เข้ากับโปรโตคอล UITableViewDelegate แล้ว เราก็สามารถเข้าถึงผู้ร่วมประชุมได้ และเมื่อเราประกาศ delegate ให้กับตัวเอง หรือที่เรียกว่า view controller เรากำลังบอกว่าตอนนี้ view controller จะรับผิดชอบทั้งหมดของ UITableViewDelegate

และนั่นคือจุดสิ้นสุดของบทความนี้! ขอบคุณสำหรับการอ่านและมีวันที่ดี :)