2014-09-21 5 views
2

Я изо всех сил много пытается перевести этот код из Objective-CНеприятности инициализацией NSDictionary в Swift

NSDictionary * options = [NSDictionary dictionaryWithObject:[NSNumber numberWithInteger:UIPageViewControllerSpineLocationMid] forKey:UIPageViewControllerOptionSpineLocationKey]; 

... в Swift

var options:NSDictionary = NSDictionary.dictionaryWithObjects(UIPageViewControllerSpineLocation.Mid, forKeys: UIPageViewControllerOptionSpineLocationKey, count: 0); 

К сожалению, это Безразлично Я работаю, и я не знаю, почему! Вот что XCode «сообщила выход s:

не может ссылаться на 'dictionaryWithObjects' со списком аргументов типа '(UIPageViewControllerSpineLocation для ключей: NSString !, подсчитывать: IntegerLiteralConvertible)'

Может кто-нибудь Помогите мне? Благодаря

ответ

4

как насчет просто

let options = [UIPageViewControllerOptionSpineLocationKey: UIPageViewControllerSpineLocation.Mid];` 

проблемы вы столкнулись в том, что конструктор NSDictionary.dictionaryWithObjects - а) не существует, б) перечисления не AnyObject, с), что число равно 0, но должно быть 1

let o = UIPageViewControllerSpineLocation.Mid.toRaw() //toRaw makes it conform to AnyObject 
    let k = UIPageViewControllerOptionSpineLocationKey 
    let options = NSDictionary(object: o, forKey: k) 
+0

Спасибо! Он просто хотел, чтобы «toRaw»: опции var: NSDictionary = NSDictionary (объект: UIPageViewControllerSpineLocation.Mid.toRaw(), forKey: UIPageViewControllerOptionSpineLocationKey); –

+0

toRaw больше не метод? –

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