Я использую следующий код для сохранения объекта UserDefaults (ранее NSUserDefaults) с помощью xcode 8:
let defaults = UserDefaults.standard()
defaults.set(someObject, forKey: "someObject")
print(defaults.object(forKey: "someObject"))
someObject - это словарь, и я запускаю симулятор.
По какой-то причине это не сохраняет значение и печатается "nil". Удивление, если это проблема симулятора.