1

在 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”?

4

2 回答 2

6

好吧,不应该吗?

  self.feedbackTarget = [OCMockObject mockForProtocol:@protocol(FeedbackTarget)];
于 2013-02-24T17:47:10.300 回答
0
 self.feedbackTarget = [OCMockObject mockForProtocol:FeedbackTarget];

发送到OCMockObject这里的对象是一个叫做 的东西FeedbackTarget。但是没有对象“FeedbackTarget”。可以肯定的是,这是协议的名称,但它不是对象。

正如 Odrakir 指出的那样,您需要传递 @protocol(FeedbackTarget)。同样,当将选择器传递给对象时,您传递 @selector(theSelector: 而不是裸选择器。

于 2013-02-24T19:47:25.330 回答