我正在尝试模拟分段控件,但出现崩溃,有什么建议吗?

NSInteger selectedSegment = 2;
id segmentedControlMock = [OCMockObject niceMockForClass:[UISegmentedControl class]];
[[[segmentedControlMock stub] andReturn:OCMOCK_VALUE(selectedSegment)] selectedSegmentIndex];

我在模拟对象上调用selectedSegmentIndex时就崩溃了:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“具有对象返回类型的预期调用。”

最佳答案

您需要使用andReturnValue:

NSInteger selectedSegment = 2;
id segmentedControlMock = [OCMockObject niceMockForClass:[UISegmentedControl class]];
[[[segmentedControlMock stub] andReturnValue:OCMOCK_VALUE(selectedSegment)] selectedSegmentIndex];

10-08 16:54