Objective c sqlite故障读取

Objective c sqlite故障读取,objective-c,xcode4.3,Objective C,Xcode4.3,我有一个favDatabase,它从我的数据库中读取数据: h m 现在在我的收藏夹视图中,我尝试读取数据: favDatabase *fav = (favDatabase *)[UIApplication sharedApplication]; return fav.idSPBData.count; 但是,它崩溃了: 2012-09-03 13:44:13.692 usualBike[1857:11603] -[UIApplication idSPBData]: unrecognized

我有一个favDatabase,它从我的数据库中读取数据:

h

m

现在在我的收藏夹视图中,我尝试读取数据:

favDatabase *fav = (favDatabase *)[UIApplication sharedApplication];

return fav.idSPBData.count;
但是,它崩溃了:

 2012-09-03 13:44:13.692 usualBike[1857:11603] -[UIApplication idSPBData]: unrecognized selector sent to instance 0x6e2f5a0
 2012-09-03 13:44:13.693 usualBike[1857:11603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIApplication idSPBData]: unrecognized selector sent to instance 0x6e2f5a0'

我使用的是Xcode 4.3,这是发行版的问题吗?

在委托类中保留一个保存数据库的属性变量,然后调用:

favDatabase *fav = (favDatabase *)((AppDelegate*)[UIApplication sharedApplication].myFavDatabase);
假设
AppDelegate
是您的主要委托

另一种方法是使您的DB实例成为单实例:

+(favDatabase *)sharedManager{
    static dispatch_once_t pred;
    static favDatabase *shared = nil;

    dispatch_once(&pred, ^{
        shared = [[favDatabase alloc] init];
    });
    return shared;
}
使用:

@interface favDatabase : UIResponder <UIApplicationDelegate>

@property (nonatomic) favDatabase  *myFavDatabase;
@接口favDatabase:UIResponder
@属性(非原子)favDatabase*myFavDatabase;

这绝对不是Xcode的问题。共享应用程序是UIApplication的实例,而不是favDatabase类。UIApplication显然没有方法名idSBData.idSPBData是favDatabase中的NSMutableArray(其in.h)是,但共享应用程序实例不是favDatabase的实例。这是应用程序的一个例子。你不能只指着一块石头,称它为飞机,然后说它坏了,因为它不能飞到你最喜欢的度假目的地。这是你的意思吗@接口AppDelegate:UIResponder{favDatabase*fav;}我相应地修改了答案(并更改了变量名)。尝试使用大写字母作为类的第一个字母,以避免与变量混淆。
+(favDatabase *)sharedManager{
    static dispatch_once_t pred;
    static favDatabase *shared = nil;

    dispatch_once(&pred, ^{
        shared = [[favDatabase alloc] init];
    });
    return shared;
}
@interface favDatabase : UIResponder <UIApplicationDelegate>

@property (nonatomic) favDatabase  *myFavDatabase;