我正在使用Xcode 5.1.1上的iOS 7.1应用程序(当前无法升级),使用ARC和没有StoryBoard,当我在viewDidLoad方法中调用空方法时,应用程序崩溃了我的自定义方法结束。目前,我认为它是我的Xcode的旧版本,或者我没有使用StoryBoard的事实,但我尽可能地简化了代码,但仍然无法找到错误。如果有人能指出我做错了什么,那就太好了,谢谢!
崩溃只是说线程1:断点1.1,当[self.window makeKeyAndVisible]
调用[viewController viewDidLoad]
时崩溃。
ViewController.h
@interface XYZContactsTableViewController : UITableViewController
@end
ViewController.m:
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self getAddressBook];
}
- (void)getAddressBook {
} // App crashes at line point exactly
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
XYZContactsTableViewController *viewController = [[XYZContactsTableViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];
return YES;
}
编辑: 此外,在viewDidLoad方法中调用纯C函数也有效,因此问题与viewController对象有关。
答案 0 :(得分:2)
崩溃只是说线程1:断点1.1
啊哈。你根本没有崩溃。你只是在断点处暂停。如果您不想暂停,或者断点让您感到困惑,请取消断点或关闭断点。断点很棒,但你显然不了解它们,所以暂时把它们关掉(但最后要学会使用它们,因为它们非常酷!)。
答案 1 :(得分:0)
为什么不使用一些已经实现的组件? :) 查看KBContactsSelection,您可以搜索并选择多个联系人,并可使用优雅Builder Pattern轻松自定义。