Sobes.tech
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("Երկրորդ մշակող")
}

Երբ սեղմում եք, երկու մշակողներն էլ կկանչվեն հերթականությամբ։