Junior — Middle
Ինչպե՞ս է կատարվում մի քանի լսարանների մշակումը, որոնք կապված են մեկ սեղմման իրադարձության հետ։
sobes.tech AI
Պատասխան AI-ից
iOS-ում, եթե մի իրադարձությանը, օրինակ, սեղմում (touchUpInside), միաժամանակ մի քանի լսող (target-action) է կապված, նրանք կոչվում են ավելացման կարգով։ Յուրաքանչյուր լսող ստանում է իրադարձությունը և կարող է կատարել իր տրամաբանական գործողությունները։
Եթե անհրաժեշտ է վերահսկել կարգը կամ կանխել հետագա մշակումը, դա կարելի է կառավարել ներսում, օրինակ՝ անջատելով այլ լսողներին կամ օգտագործելով նշաններ։ Սակայն, UIKit-ի ստանդարտ մեխանիզմը չի ապահովում ներմուծված միջոց՝ կանգնեցնել իրադարձության տարածումը լսողների միջև։
Օրինակ՝ մի քանի մշակողի ավելացում UIButton-ին՝
button.addTarget(self, action: #selector(firstHandler), for: .touchUpInside)
button.addTarget(self, action: #selector(secondHandler), for: .touchUpInside)
@objc func firstHandler() {
print("Առաջին մշակող")
}
@objc func secondHandler() {
print("Երկրորդ մշակող")
}
Երբ սեղմում եք, երկու մշակողներն էլ կկանչվեն հերթականությամբ։