2016-10-31 6 views
0

이 코드는 Xcode 8에서 작동하고 멈추는 데 사용되었습니다. 정확히 무엇이 잘못 되었습니까? 블록 내부의 조기 값입니까?조롱 된 객체 대신 예상치 못한 OCMMacroState가 발생했습니다.

나는 점점 오전 :

실패 : "NSInvalidArgumentException"를 붙 잡았다 -

OCMVerify([mockPaymentQueue addPayment:[OCMArg checkWithBlock:^BOOL(SKPayment *payment) { 
    return [payment.productIdentifier isEqualToString:@"testID"]; 
}]]); 
: 코드이지만

"[OCMMacroState productIdentifier] 알 수없는 선택기 인스턴스 0x7fb07dc885a0로 전송"

문제를 해결하는 방법이나 잘못된 것이 있습니까?

답변

0

지금 봤습니다. 다음과 같이 코드를 다시 작성하면 어떻게됩니까?

id productIdentifier = payment.productIdentifier; 
OCMVerify([mockPaymentQueue addPayment:[OCMArg checkWithBlock:^BOOL(SKPayment *payment) { 
    return [productIdentifier isEqualToString:@"testID"]; 
}]]); 
+0

지불 대상은 블록 내부에서 액세스 할 수 있으므로이를 수행 할 수 없습니다. 어쨌든 도움이 될지 모르겠습니다. 사실 그것은 1.5 개월 전이었습니다. 어떻게 든 고쳐졌지만 이미이 문제를 거의 기억하지 못합니다. – Vive