2014-10-24 1 views
3

Я пытаюсь сделать математику, чтобы установить положение узла фигуры. Похоже, что это (Swift): var score: NSNumber? score = score! + 1'NSNumber' не конвертируется в 'Int' Swift

Xcode 6 беты 5 перспективы совершена, но xocde 6.1 не запускаются, отчет «NSnumer» не конвертируется в «Int»

ответ

5

Я понимаю, что это старый вопрос , и вы, вероятно, уже поняли это, но, имея похожие проблемы в последнее время, я решил, что отправлю ответ для потомков.

Swift (насколько мне известно) все еще подвергается изменениям дизайна в качестве языка программирования, и одна вещь, которую я заметил, это то, что мне нужно было начать обматывать мой int внутри функции Int(). Так что ваш пример, возможно, придется искать что-то вроде этого:

var score: NSNumber? 
score = NSNumber(integer:score!) + 1 

Edit:

Чтобы попытаться объяснить, почему мы должны сделать это, я считаю, это потому, что score является NSNumber(), который может иметь различные числовые формы. NSNumber(integer:score!) re-wraps score! как целое, в частности, что позволяет нам использовать целые числа против него в математических уравнениях.