2016-01-30 2 views
0

У меня есть простой класс:Swift словарь пустого после прилагаемых элементов

import Foundation 
import MapKit 

class OWMAPIManager { 


    private var params = [String : AnyObject]() 

    internal init(apiKey: String) { 
     params["APPID"] = apiKey 
    } 
} 

И я создаю новый объект под этим:

let weatherApi = OWMAPIManager(apiKey: "myApi key") 

Проблема заключается в том, что после того, как методе инициализации моего массива словарь еще пуст , Можете ли вы сказать мне, что не так?

+1

Я могу» t воспроизводит вашу проблему, она работает для меня на игровой площадке, 'params' содержит новую запись, этот код верен. – Moritz

+0

@ EricD. Я пытаюсь запустить его в iOS9.2. Создание объекта в viewDidLoad и после этой строки кода у меня есть пустая карта. Я пробовал проект очистки. Все такой же. – Preetygeek

+0

Я предполагаю, что это проблема масштаба. Вы должны отредактировать свой вопрос и показать свой фактический код в ситуации. Мы не можем все угадать. :) – Moritz

ответ

1

Как я вижу, вам нужно изменить следующую строку, я не вижу ничего, поэтому трудно догадаться, но это может быть проблемой. Изменить что:

private var params: [String: AnyObject]? 

Напишите мне, если что сделал это

Если убрать знак вопроса, то он не является необязательным

+0

Я знаю, теперь у меня есть необязательный var, который я инициализирую в методе init. Я бы не хотел иметь дополнительный, но мой исходный код не работает. Изменить - после очистки кода еще раз и проверка печати - код работает в исходном состоянии без дополнительного. Спасибо за помощь. – Preetygeek

+0

Удалите вопросительный знак после объявления переменной. – Anokrize

+0

Какой тип ApiKey? – Anokrize

0

убедитесь, что вы инициализирован ваш словарь

+0

Если вы посмотрите на вопрос, вы увидите, что это уже так. И если вы посмотрите на комментарии по этому вопросу, это будет подтверждено. – Moritz

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