I've initialized a dictionary of type `[NSObject: AnyObject]` so I can save it into `NSUserDefaults`.

Here's what it looks like:

```
var allMetadata: [NSObject: AnyObject] = [
    String: [String: String]
    // Example: "project30": ["deliverablepath": "hello"]
]

```

I give `deliverablepath` a value from the very beginning, and later on I want to update it. I've tried this:

```
allMetadata[arrayOfProjectIDs[index]]!["deliverablepath"]! = "goodbye"

```

But I get the error 

> 
> Operand of postfix '!' should have optional type; type is '(NSObject,
>  AnyObject)'
> 
> 
> 

I know about `updateValue()`, but it seems to overwrite adjacent keys in the first nested layer, so it's not working for me.

Any ideas?