2014-06-13 3 views
1

나는 오류를 얻고있다호환되지 않는 블록 포인터 타입

-(void)showInView:(UIView *)view withCompletionHandler:(void (^)(NSString *, int))handler{ 
_completionHandler = handler; 
} 

경우 : 그것은 정말이어야한다처럼

@property (nonatomic, strong) void(^completionHandler)(NSString *, NSInteger); 

이 보인다, 정말 쉽게 고칠 수 있지만, 제대로 작동하지는 못합니다.

답변

4

64 비트 타겟을 위해이 기능을 구현하려고합니까? 64 비트 플랫폼에 구축 할 때

#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64 
typedef long NSInteger; 
typedef unsigned long NSUInteger; 
#else 
typedef int NSInteger; 
typedef unsigned int NSUInteger; 
#endif 

그래서, NSInteger는 차단에 할당하려는 때문으로 int를한다,이 오류를 발생시키는 long 유형으로 대체됩니다 다음과 같이 NSInteger 정의된다 매개 변수를 오래 걸리는 블록을 예상하는 속성에 추가합니다. 다음을 사용해야합니다.

-(void)showInView:(UIView *)view withCompletionHandler:(void (^)(NSString *, NSInteger))handler{ 
    _completionHandler = handler; 
} 
관련 문제