2014-10-09 6 views
2

없는 나는 다음과 같은 코드를 가지고 : 내가 원래 GCD: Dispatch After을 냈다 내가 dispatch_after()스위프트 dispatch_after 던지는 접두사 단항 연산자 오류

'^' is not a prefix unary operator 

의 라인에 다음과 같은 메시지가 사용

import SpriteKit 
import Foundation 

class GameScene: SKScene { 
    var occupiedCoordinates: NSMutableArray = NSMutableArray() 

    func addShape() { 

     //... 

     shape.position = CGPoint(x:actualX, y:actualY) 
     self.occupiedCoordinates.addObject(NSValue(CGPoint:shape.position)) 
     let halfDuration = random(min: CGFloat(0.5), max: CGFloat(5)) 

     //... 

     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2*halfDuration), dispatch_get_main_queue(), ^{ 
      self.occupiedCoordinates.removeObjectAtIndex(0) 
      }); 
    } 

} 

어떤 아이디어가 문제 죠?

답변

0

이 빠른에 함수에 클로저 (즉 객관적-C 블록)을 통과하는 올바른 방법입니다 :

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * halfDuration), dispatch_get_main_queue(), {() ->() in 
    self.occupiedCoordinates.removeObjectAtIndex(0) 
}) 

또는 당신은 또한이 컴팩트 한 형태로 사용할 수 있습니다

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * halfDuration), dispatch_get_main_queue()) { 
    self.occupiedCoordinates.removeObjectAtIndex(0) 
} 

을 제안 읽기 : Closures

+0

이 yiels '호출 할 수 없습니다 '*'형식의 인수 목록 (dispatch_time_t, dispatch_queue_t!, 0)' –

+0

w로 모자는'halfDuration'의 타입입니까? – Antonio

+0

현재 CGFloat .. –

9

^{...}은 Objective-C 구문입니다. ^은 필요하지 않습니다.