I have a Dictionary and i want to save it to NSUserDefaults(or something else so I can have access to my variables after i have terminated the app) , I found an example:

```
var saved = NSUserDefaults.standardUserDefaults()
let dict = ["Name": "Paul", "Country": "UK"]
saved.setObject(dict, forKey: "SavedDict")

```

But when i used it to mine Dictionary it didn't work. (maybe because my dictionary it's a little bit different)

My Dictionary is made like this:

```
 var userDictionary = [Int : Event]()

 struct Event {
        var sensorName: String
        var sensorType: String
        var sensorSub: String

    }

```

And i add elements like this:

```
userDictionary[value] = Event(sensorName: "first", sensorType: "Temp", sensorSub: "Third")

```

And here is what i tried to do so I can store it.

```
saved.setObject(userDictionary, forKey: "valueDictionary")

```

And I get this error:

> 
> Cannot convert value of type '[Int : SensorsView.Event]' to expected
>  argument type 'AnyObject?'
> 
> 
> 

To avoid this error I did this:

```
self.saved.setObject(self.userDictionary as? AnyObject, forKey: "valueDictionary")

```

But I can't retrieve what i saved

Unfortunately this [question](https://stackoverflow.com/questions/2315948/how-to-store-custom-objects-in-nsuserdefaults) didn't help me after some comments i believe that the goal here is to convert my dictionary to Data (or something else) and after i retrieve it i convert it back to Dictionary