2014-09-15 2 views
4

같은 프로젝트에서 Swift와 Objective-C를 결합했습니다.Objc to swift bridge`선언되지 않은 식별자 'cocoarr'`의 사용

// swift 
twitterApi.getStatusesLookupTweetIDs(ids, successBlock: { (tweets: [AnyObject]!) -> Void in 
    process(tweets) 
    finish() 
}, errorBlock: { (err) -> Void in 
    error(err) 
}) 

모든 것이 나는 그들이 모든 유효한 값을 가지고, 변수가 successBlock에 전달 조사하지 시도 OBJ (-C에서 잘 보이는

// objective-c 
// STTwitter category method 
// 
- (void)getStatusesLookupTweetIDs:(NSArray *)tweetIDs 
        successBlock:(void (^)(NSArray *))successBlock 
         errorBlock:(void (^)(NSError *))errorBlock { 

    [self getStatusesLookupTweetIDs:tweetIDs 
        includeEntities:@(YES) 
          trimUser:@(YES) 
           map:@(YES) 
         successBlock:successBlock 
         errorBlock:errorBlock]; 
} 

스위프트 코드 :이 같은 STTwitter cocoapod를 사용하는 것을 시도하고있다). 그러나 스위프트에, 때 successBlock 실행됩니다, tweets했다 : 나는이 문제를 해결하고 스위프트에 NSArray을 통과하려면 어떻게

Printing description of tweets: 
([AnyObject]!) tweets = 1 value { 
    [0] = <error: use of undeclared identifier 'cocoarr' 
error: 1 errors parsing expression 
> 

} 

? (컴파일 오류 없음)

답변

0

저에게 도움이되었습니다. 대신 사용

:
[AnyObject]
시도 사용하기 :
[Dictionary<String, AnyObject>] (or whatever class is inside the array)

시도를 배열 대신 AnyObject의 유형을 지정할 수 있습니다.

도움이되기를 바랍니다.

건배.

+0

죄송합니다. 프로젝트가 오랫동안 삭제되었습니다. 다시 만들 방법이 없습니다. 다른 사람이 나를 확인해 줄 수 있니? – Daiwei

+0

해당 코드를 시도 할 때 '일반 제네릭이 아닌 유형 nsdictionary를 전문화 할 수 없습니다'라는 경고를받습니다. – Sunkas

0

시도 [[String:AnyObject]]보다는 [AnyObject]

은 내가 smilar 기능에서 같은 오류가 발생했습니다. 에서 변경하는 경우 :

if let dictOrList = NSJSONSerialization.JSONObjectWithData(data, options:nil, error: &err) as? NSDictionary { 
    callbackList = [dictOrList] 
} else if let list = NSJSONSerialization.JSONObjectWithData(data, options:nil, error: &err) as? [AnyObject] { 
    callbackList = list 
} 

if let dictOrList = NSJSONSerialization.JSONObjectWithData(data, options:nil, error: &err) as? [String: AnyObject] { 
    callbackList = [dictOrList] 
} else if let list = NSJSONSerialization.JSONObjectWithData(data, options:nil, error: &err) as? [[String:AnyObject]] { 
    callbackList = list 
} 

에 나는 일을 얻었다.

관련 문제