相关疑难解决方法(0)

isKindOfClass无法按预期工作

我正在开发一个iOS5 +项目(xcode 4.4.1 SDK 5.1)

我在单元测试中有这个代码:

[_appDelegate application:nil didFinishLaunchingWithOptions:nil];

UITabBarController *tabBarController = (UITabBarController*)_appDelegate.window.rootViewController;

NSArray *viewControllers = [tabBarController viewControllers];

UINavigationController *nc_1 = [viewControllers objectAtIndex:0];
UIViewController *vc_1 = nc_1.topViewController;

STAssertTrue([vc_1 isKindOfClass:[ScheduleViewController class]]==YES, @"UITabBarController first tab should be a ScheduleViewController class");
Run Code Online (Sandbox Code Playgroud)

如果我运行测试,测试失败.

所以我检查调试器:

(lldb) po [ScheduleViewController class]
(id) $1 = 0x00142b04 ScheduleViewController
(lldb) po vc_1
(UIViewController *) $2 = 0x11a32dc0 <ScheduleViewController: 0x11a32dc0>
(lldb) print (BOOL) [vc_1 isKindOfClass:(Class)[ScheduleViewController class]]
(BOOL) $4 = YES
(lldb) po [vc_1 class]
(id) $5 = 0x00142b04 ScheduleViewController
(lldb) 
Run Code Online (Sandbox Code Playgroud)

在应用程序中:didFinishLaunchingWithOptions:我创建一个ScheduleViewController,我将它用作导航控制器的rootController.调试器说它是正确的.我不明白上面的断言有什么问题. …

xcode objective-c llvm nsobject ios

9
推荐指数
1
解决办法
3638
查看次数

现有项目的XCTest

我有一个很大的(大约700个模块)iOS项目.现在我需要对现有代码进行单元测试(在我们不使用它之前).我为我的目标添加了新的XCTest测试目标,并开始编写我的第一个测试.但是在编译之后我遇到了一些链接错误,因为我的项目中的模块没有包含在测试目标中.我是否已将所有模块都包含在测试目标中?或者有更简单的方法来制作测试目标?

xcode objective-c ios xctest

3
推荐指数
1
解决办法
2468
查看次数

标签 统计

ios ×2

objective-c ×2

xcode ×2

llvm ×1

nsobject ×1

xctest ×1