在FeedbackTarget.h中:
@protocol FeedbackTarget <NSObject>
@property (nonatomic, retain) Feedback *feedback;
- (void)someMethod;
@end
在FeedbackViewControllerTests.m中:
#import "FeedbackTarget.h"
...
- (void)setUp
{
[super setUp];
self.feedbackTarget = [OCMockObject mockForProtocol:FeedbackTarget];
}
为什么我会收到错误:使用未声明的标识符'FeedbackTarget'?
答案 0 :(得分:6)
好的,不应该吗?
self.feedbackTarget = [OCMockObject mockForProtocol:@protocol(FeedbackTarget)];
答案 1 :(得分:0)
self.feedbackTarget = [OCMockObject mockForProtocol:FeedbackTarget];
此处发送到OCMockObject
的对象称为FeedbackTarget
。但是没有对象“FeedbackTarget”。当然,这是协议的名称,但它不是一个对象。
正如Odrakir指出的那样,你需要传递@protocol(FeedbackTarget)。类似地,当将选择器传递给对象时,传递@selector(theSelector:不是裸选择器。