ASObjC: Klasse einbinden

Beim letzten Punkt haben wir so lapidar eine neue Klasse in ein ASObjC Projekt hinzugefügt. Nur wie greift man dann auf diese zu? Um dies zu bewerkstelligen gibt es zwei verschiedene Möglichkeiten.

Instanzierung im Code

Mit der ersten Möglichkeit wird die benötigte Klasse programmatisch hinzugefügt. Hierzu wird im Header mit property test : class „test“ of current application die Klasse „includiert“. Um die Instanzierung der Klasse muss man sich dann selbst kümmern, siehe folgenden Beispielcode.

-- benötigte Klasse "includieren"
property test : class "test" of current application

script ClassTestAppDelegate
  property parent : class "NSObject"

  --
  --
  --

  on classTest_(sender)
    --Klasse instanzieren
    set myTest to test's alloc()'s init
    --auf Klassenmethode zugreifen
    set strFromClass to myTest's convertString_("Wandle mich um." as string)
    --Rückgabewert der Methode ausgeben
    display alert strFromClass
  end classTest_

  --
  --
  --

end script

Instanzierung über Interface Builder

Eine Klasse kann aber auch ohne eine Zeile Code zu schreiben instanziert werden. In diesem Fall wird mit property test : missing value ein Outlet für den Interface Builder definiert. Innerhalb des Interface Builders zieht man nun ein NSObject Icon in das IB Dokumentenfenster. Im Identity Inspector wird der Name der Klasse eingetragen der Instanziert werden soll. Zum Schluss muss das Outlet noch mit dem NSObject verbunden werden (siehe Screenshot).

Der Beispielcode sieht wie folgt aus.

script ClassTestAppDelegate
  property parent : class "NSObject"

  --Instanzierung der Klasse über Interface Builder
  property test : missing value

  --
  --
  --

  on classTest_(sender)
    --auf Klassenmethode zugreifen
    set strFromClass to test's convertString_("Wandle mich um.") as string
    --Rückgabewert der Methode ausgeben
    display alert strFromClass
  end classTest_

  --
  --
  --

end script

Schreibe einen Kommentar