ฉันกำลังพยายามเขียนแอพ iPhone ตัวแรกของฉัน และฉันมีปัญหากับผู้รับมอบสิทธิ์
ฉันมีคลาสที่ใช้ AVAudioPlayer เพื่อเล่นเสียง จากนั้นฉันก็มีคลาสอื่นที่ต้องดำเนินการบางอย่างเมื่อเสียงนั้นเสร็จสมบูรณ์ ดังนั้นฉันต้องการคลาสนี้เพื่อใช้วิธี audioPlayerDidFinishPlaying ของเครื่องเล่นเสียง
ปัญหาคือ ฉันไม่สามารถหาวิธีทำให้คลาสที่สองของฉันเป็นตัวแทนเครื่องเล่นเสียงที่เป็นสมาชิกของคลาสเฟิสต์คลาสได้ ฉันสร้างวิธีการในคลาสแรกที่อ้างอิงถึงคลาสและรันเมธอด setDelegate ในเรื่องนี้ แต่เมธอด audioPlayerDidFinishPlaying ไม่เคยถูกเรียก อย่างไรก็ตาม หากฉันใช้เมธอด audioPlayerDidFinishPlaying ในคลาสแรก ก็ถือว่าใช้ได้ ฉันจะทำให้ audioPlayerDidFinishPlaying ถูกเรียกในคลาสที่สองได้อย่างไร
ดังนั้น รหัสที่ฉันใช้เพื่อเพิ่มผู้รับมอบสิทธิ์ ในชั้นเรียนแรกฉันมีวิธีนี้:
-(void) setAudioDelegate:(id)delegate{
[audioPlayer setDelegate:delegate];
}
แล้วในชั้นสองฉันจะเรียกมันจากสิ่งนี้
[class1 setAudioDelegate:self];
audioPlayer
ถูกตั้งค่าเป็นสิ่งที่มีความหมายเมื่อมีการเรียก[class1 setAudioDelegate:self]
เรียกว่าวิธีใด? วิธีการaudioPlayerDidFinishPlaying:
ของคลาสนั้นมีลักษณะอย่างไร - person Chuck   schedule 13.09.2010