2016-07-14 2 views
1

У моего json есть ссылки googleplus ресторанов, и он показывает null, если в ресторане нет ссылки googleplus. Но я получаю ошибку, как упоминалось выше.Не удалось присвоить значение типа «NSNull» (0x10aa1b600) в «NSString» (0x10b4dab48)

if dict["googlepluslink"] != nil 
{ 
    self.googlepluslink.append((dict["googlepluslink"] as? String)!) 
} 
else 
{ 
    self.googlepluslink.append(("-" as? String)!) 
} 

Не удалось бросить значение типа 'NSNull' (0x10aa1b600) к 'NSString' (0x10b4dab48)

ответ

14

использования if let или guard заявление, чтобы проверить dict["googlepluslink"] является строка или нет, а затем в соответствии с что вы можете добавить свои данные как ниже

if let link = dict["googlepluslink"] as? String 
{ 
    self.googlepluslink.append(link) 
} 
else { 
    self.googlepluslink.append("-") 
} 
0
self.googlepluslink.append((dict["googlepluslink"] as? String)!) 

Это совершенно странно и противоречиво.

Вы берете что-то из словаря. Результатом является необязательное значение, плюс он может быть объектом любого класса, например NSNull.

Затем вы передаете его в строку, используя как? что означает, что вы получаете необязательную строку, и никаких сбоев, если словарь не содержит ничего или что-то, что не может быть преобразовано в String!

Затем вы используете! оператор, который будет сбой, если ваша дополнительная строка равна нулю. Это не имеет никакого смысла.

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