如何在模拟器上运行但不在iPhone上调试?

时间:2012-03-02 21:58:01

标签: iphone objective-c ios xcode cocoa-touch

*更新:现在无法在iPhone或模拟器上运行。在我运行干净的构建后,我在模拟器上得到了错误:

Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/572536B3-5E7D-4F2B-8D80-4345412DCF10/Quotes.app> (loaded)' with name 'RootViewController'

我已经检查过MainWindow.xib文件,并且没有提到RootViewController。我之前将它重命名为CategoryViewController。

根据@megger的请求,这是我的CategoryViewController:

#import <UIKit/UIKit.h>
#import "Category.h"
#import "AddSubjectController.h"
#import "SubjectViewController.h"
#import "SBTableAlert.h"

@class SubjectViewController;
@class AddSubjectController;
@class SearchViewController;

@interface CategoryViewController : UITableViewController  <UIAlertViewDelegate, SBTableAlertDelegate, SBTableAlertDataSource> {

    NSMutableArray *categories;
    NSMutableArray *allCategories;
    NSMutableArray *subjects;
    NSMutableArray *allSubjects;
    AddSubjectController *addSubController;
    SubjectViewController *subViewController;
    SearchViewController *svc;
    NSIndexPath* checkedIndexPath;

}

@property (nonatomic, retain) NSMutableArray *categories;
@property (nonatomic, retain) NSMutableArray *allCategories;
@property (nonatomic, retain) Subject *selectedSubject;
@property (nonatomic, retain) Quote *selectedQuote;
@property (nonatomic, retain) NSMutableArray *allSubjects;
@property (nonatomic, retain) NSMutableArray *subjects;
@property (nonatomic,assign) QuoteMapViewController *qmv;
@property (nonatomic,assign) SearchViewController *svc;
@property (nonatomic, assign) NSInteger mySection;
@property (nonatomic, assign) NSInteger myRow;
@property (nonatomic, retain) NSIndexPath* checkedIndexPath;

@end

3 个答案:

答案 0 :(得分:1)

另一张堆叠海报也有类似的问题。

也许这会有所帮助:this class is not key value coding-complient for the key

答案 1 :(得分:0)

我不太确定你在寻找什么,你是不是想在模拟器本身而不是在实际设备上运行某些代码?如果这是你正在寻找的,我接近这个的方法是定义一个宏,它允许你将代码包装在括号内,只在模拟器中运行它。

#define SIM(x) if ([[[UIDevice currentDevice].model lowercaseString] rangeOfString:@"simulator"].location != NSNotFound){x;}

如果您想在括号中添加分号,可以在末尾删除分号,但在括号之间添加分号可能看起来很奇怪。

此代码的使用方式如下:

SIM(NSLog(@"This is only logged within the simulator."))

答案 2 :(得分:0)

Could not load NIB in bundle: 
'NSBundle </var/mobile/Applications/572536B3-5E7D-4F2B-8D80-4345412DCF10/Quotes.app> 
(loaded)' with name 'RootViewController'

(1)使用像BBEdit或EasyFind这样的文本搜索器在项目文件夹中搜索“RootViewController”。它在某处。例如,如果你有一个名为RootViewController的类,并使用alloc-init实例化它,或者以其他方式无法指定一个nib,它将寻找一个名为RootViewController的nib。

(2)你最后一次在这个项目上做了什么全部清洁?我觉得是时候做了。您构建的应用程序可能存在残留,只有Clean可以将其从那里取出。请参阅我的建议:How to Empty Caches and Clean All Targets Xcode 4