Question: I know that Eclipse has built in Git integration, but I'm so used to quick, simple Git commands from the command line.

Does Eclipse manage a git repository any differently than is done through the command line?

Answer: 
You will be better off by casting the arrays returned from your class methods, like so:

```
for fontFamilyName in UIFont.familyNames() as Array<String!> {
    for fontName in UIFont.fontNamesForFamilyName(fontFamilyName) as Array<String!> {
        println("font: \(fontName)")
    }
}

// prints fontFamilyName: Marion,
//        font: Marion-Italic
//        font: Marion-Bold
//        font: Marion-Regular
//        fontFamilyName: Copperplate
//        font: Copperplate-Light
// etc.

```
Both, I think. Your code is wrong in such a way that it exposes a compiler bug. It appears to be blowing up on the type assertion `String!`. I think that this is because the return type of `UIFont.familyNames()` is `AnyObject[]!`. The `!` here means it is forcibly unwrapped, so you expect to get back an `AnyObject[]` not a `Optional<AnyObject>`. So `String!` isn't `Optional`, which should be an error with a nice message, not something that crashes Xcode.

What you need to do instead is tell the compiler that the AnyObject[] it is getting back is of type String[]:

```
for fontFamilyName in UIFont.familyNames() as String[] {
    for fontName in UIFont.fontNamesForFamilyName(fontFamilyName) as String[] {
        println("font: \(fontName)")
    }
}

```