2017-09-01 1 views
0

Ich habe ein paar TextField outlet collections. Ich möchte durch jede Sammlung gehen und jedem Textfeld einen Rahmen hinzufügen. Ich kann diese Sammlung gleichzeitig erfolgreich durchführen. Allerdings möchte ich die Rahmenfunktion nicht für jede Sammlung separat aufrufen müssen.Outlet Collections

Ich habe folgende outletCollections

@IBOutlet var nameCollection: [UITextField]! 
@IBOutlet var phoneCollection: [UITextField]! 

Diese für jede Sammlung arbeitet

for name in nameCollection { 
    someFunction... 
    } 

Ich versuche, so etwas zu tun.

let collections = [nameCollection, phoneCollection] 

for name in collections { 
    someFunction... 
    } 

Grundsätzlich möchte ich eine Liste von Sammlungen zur Verfügung stellen und die Funktion für jedes Mitglied jeder Sammlung ausgeführt haben.

+0

Welches Problem haben Sie, was ist der Fehler, wenn Sie dies tun? – 3stud1ant3

Antwort

1

Kombinieren Sie einfach Ihre Steckdose Kollektionen:

let combinedCollection = nameCollection + phoneCollection 

Zum Beispiel:

extension UITextField 
{ 
    func doSomething() 
    { 

    } 
} 

class ViewController: UIViewController { 

    @IBOutlet var nameCollection: [UITextField]! 
    @IBOutlet var phoneCollection: [UITextField]! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let combinedCollection = nameCollection + phoneCollection 
     for eachField in combinedCollection 
     { 
      eachField.doSomething() 
     } 
    } 
} 

Dieses Beispiel geht davon aus, dass jede Sammlung die gleiche Art von Objekt hat.