2015-10-29 1 views
0

Я недавно модернизировал свой Xcode от версии 6.3.1 до Xcode 7.1 бета. Я использую CMMotionManger, и следующий код показывает ошибку в новой версии. Я попытался разрешить это, но не смог найти решение. Заранее спасибо.Невозможно преобразовать значение типа (CMAccelerometerData, NSError!) ->() для CMAccelerometerHandler (ака (Необязательно <CMAccelerometerData>, Дополнительный <NSError>) - <())

Код:

let motionManager=CMMotionManager() 
     motionManager.accelerometerUpdateInterval = 0.2 
     if(motionManager.accelerometerAvailable) 
     { 
     motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: { in 
      (accelerometerData: CMAccelerometerData!, error: NSError!) in 
      let acceleration = accelerometerData.acceleration 
      self.accelerationX = CGFloat(acceleration.x) 
     }) 
     } 

ошибка Засада:

Невозможно преобразовать значение типа '(! CMAccelerometerData, NSError) ->()', чтобы ожидать аргумент типа 'CMAccelerometerHandler' (aka '(опционально, опционально) - <()')

+0

Получил ответ. Пробовал это, и это сработало. – BlackPearl12

ответ

1

Получил ответ. Пробовал много вещей, и все работало.

Объявление акселерометраДата, ошибка, как показано ниже, и использовать непосредственно переменные внутри блока обработчика. let _: CMAccelerometerData!
let _: NSError!

let _:CMAccelerometerData! 
    let _:NSError! 

    if(motionManager.accelerometerAvailable) 
    { 
     motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: { 
     accelerometerData,error in 
     let acceleration = accelerometerData!.acceleration 
     self.accelerationX = CGFloat(acceleration.x) 
    }) 

и она работает. :)

+0

Если у вашего пользовательского типа есть хранимое свойство, которое логически разрешено иметь «нет значения» - возможно, потому что его значение не может быть установлено во время инициализации или потому, что ему разрешено иметь «нет значения» в какой-то более поздней точке - объявить свойство с необязательный тип. Свойства необязательного типа автоматически инициализируются значением nil, что указывает на то, что свойство преднамеренно предназначено для того, чтобы во время инициализации иметь значение «no value». – BlackPearl12

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

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