Posts mit dem Label OSX werden angezeigt. Alle Posts anzeigen
Posts mit dem Label OSX werden angezeigt. Alle Posts anzeigen

Xcode Playground mit asynchronen Methoden

Will man mit dem Xcode Playground ein wenig expirimentieren und dabei asynchrone Methoden verwenden, stößt man sehr schnell an seine Grenzen.
Es kommen keine Callbacks an und damit ist das Testen schwierig.

Der Grund dafür ist einfach: Wurde die aktuelle Seite im Playground einmal abgearbeitet, werden auch alle parallel laufenden Threads beendet bzw. pausiert.

Abhilfe ist ganz einfach. Man kann der aktuellen Playground - Seite sagen das die Ausführungen weiter laufen soll.
Dafür muss die Eigenschaft "needsIndefiniteExecution" der aktuellen Playground Seite auf true gesetzt werden.

Hier die komplette Anweisung:
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true

Nun kommen auch Callbacks von anderen Threads zurück.
Damit die Seite nicht durchgehend ausgeführt wird, kann die Ausführung mit folgender Anweisung beendet werden:
XCPlaygroundPage.currentPage.finishExecution()


Hier ein komplettes Beispiel für einen WebRequest im Xcode Playground:

//: Sample for HTTP Request

import UIKit
import XCPlayground

XCPlaygroundPage.currentPage.needsIndefiniteExecution = true

var str = "Hello, playground"

let url = NSURL(string: "http://danielbedarf.blogspot.com")

let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {
    (data, response, error) in
   
    print(NSString(data: data!, encoding: NSUTF8StringEncoding))
   
    //stop the execution
    XCPlaygroundPage.currentPage.finishExecution()

}

//start the http request
task.resume()


Hinweis: die Property needIndefiniteExecution ist der Nachfolger der Funktion "XCPSetExecutionShouldContinueIndefinitely()".


Mac OS Benutzernamen und Pfad ändern

Hat man sich bei der Einrichtung seines Mac vertan oder im Benutzernamen (Shortname) einen Schreibfehler, so ist es ganz einfach möglich dies zu korrigieren.

Hier eine Liste von Schritten die zum Erfolg führt:

  1. Neuen Admin Account unter Benutzerverwaltung anlegen
  2. Mit dem neuen Admin anmelden und ein Terminal öffnen
  3. Im Terminal durch Eingabe von "cd .." in das übergeordnete Verzeichnis wechseln
    Ob du im richtigen Verzeichnis bist kannst du durch "ls" prüfen
  4. Durch "sudo mv alterShortName neuerShortName" das Verzeichnis umbenennen
    alterShortName und neuerShortName müssen natürlich durch deine Angaben ersetzt werden. Normalerweise wirst du auch zur Eingabe deines Passwortes aufgefordert.
  5. In die Benutzerverwaltung wechseln und dort:
    1. die erweiterten Einstellungen des Benutzers aufrufen
    2.  den Shortname sowie den Pfad zum Benutzerverzeichnis ändern
  6. Abmelden und mit dem eigenen Account wieder anmelden
  7. ggf. den zusätzlichen Administrator wieder löschen


Fertig