2016-10-28 4 views
0

Этот фрагмент кода никогда не вызывает «сделать что-то», но Int для ключа хранится в UserDefaults.Swift 3.0 UserDefaults get value error

if UserDefaults.standard.integer(forKey: "prefix_\(item.value(forKey: "someKey") as! String)") == 1 { 
    //do something 
} 

Если изменить код:

let key = "prefix_\(item.value(forKey: "someKey") as! String)" 
if UserDefaults.standard.integer(forKey: key) == 1 { 
    do something 
} 

Он отлично работает! Что я здесь делаю неправильно?

ответ

1

Это мой пример и его работа с вашими значениями.

Я предполагаю, что «элемент» - это NSDictionary.

это работа для меня это

let item : NSDictionary = ["someKey":"123"] 

    let key = "prefix_\(item.value(forKey: "someKey") as! String)" 
    if UserDefaults.standard.integer(forKey: key) == 1 { 
     // do some thing 
    } 

И Как это тоже

let item : NSDictionary = ["someKey":"123"] 

    if UserDefaults.standard.integer(forKey: "prefix_\(item.value(forKey: "someKey") as! String)") == 1 { 
     // do some thing 
    } 

Я думаю, что вы должны делать ошибки в копии или отсутствует какой-либо ) или ".

Смежные вопросы