'Set <NSObject>' не имеет члена с именем 'anyObject.' - Xcode 6.3
Я проверяю, выбран ли элемент.
func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent)
{
// First, see if the game is in a paused state
if !gamePaused
{
// Declare the touched symbol and its location on the screen
let touch = touches.anyObject! as? UITouch
let location = touch.locationInNode(symbolsLayer)
И это было ранее скомпилировано в Xcode 6.2, но с обновлением 6.3, строка "let touch = touchhes.anyObject! as? UITouch" выдает ошибку:
'Set' не имеет члена с именем 'anyObject'
Я прочитал много похожих вопросов, но я не могу обернуть голову "Чтобы использовать значение, вам нужно сначала его развернуть". Тем более, что ответы, похоже, сосредоточены на уведомлениях.
Большое вам спасибо.
Вт
Ответы
Ответ 1
let touch = touches.first as? UITouch
.first
позволяет вам получить доступ к первому объекту UITouch.
Так как Xcode 6.3 использует обновленную версию Swift (1.2), вам нужно преобразовать старый код в Swift 1.2 (Edit → convert → To lastest Swift).
Swift 1.2 использует Set
s (новый в Swift) вместо использования NSSet
s (старый в Objective-C). Таким образом, функция touchbegan также изменяет свои параметры с NSSet на Set.
Для получения дополнительной информации укажите это
Ответ 2
Это проверит несколько касаний в символахLayer
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent)
{
// First, see if the game is in a paused state
if !gamePaused
{
// Declare the touched symbol and its location on the screen
for touch: AnyObject in touches {
let location = (touch as! UITouch).locationInNode(symbolsLayer)
}
}
}