2014-07-22 56 views
0

我并不常见这个问题。BOOL在Singleton中返回NULL的变量

我刚回到Objective-C,它让我头疼。

我单身.H

@interface BFTDataHandler : NSObject 

+ (BFTDataHandler *)sharedInstance; 

@property BOOL *initialLogin; 
@property BOOL *PPAccepted; 
@property(nonatomic, retain) NSString *Username; 
@property(assign) NSString *EDEmail; 
@property(nonatomic, retain) NSString *UID; 
@property(assign) NSString *Longitude; 
@property(assign) NSString *Latitude; 

@end 

我辛格尔顿.M

#import "BFTDataHandler.h" 

@implementation BFTDataHandler 

-(id)init 
{ 
self = [super init]; 
if (self) { 
//initlize data 
    _Username = nil; 
    _EDEmail = nil; 
    _UID = nil; 
    _Longitude = nil; 
    _Latitude = nil; 
    _initialLogin = false; 
    _PPAccepted = false; 
} 
return self; 
} 

+ (BFTDataHandler *)sharedInstance 
{ 
static BFTDataHandler *_sharedInstance = nil; 
static dispatch_once_t onceSecurePredicate; 
dispatch_once(&onceSecurePredicate,^ 
       { 
        _sharedInstance = [[self alloc] init]; 
       }); 
return _sharedInstance; 
} 

我会尝试访问PPAccepted BOOL并不断返回NULL

NSLog(@"%s", [[BFTDataHandler sharedInstance] PPAccepted]); 
return *[[BFTDataHandler sharedInstance]PPAccepted]; 

我找不出该问题,在此先感谢帮助

回答

1

@property BOOL *initialLogin;

虽然的确可以创建是一个指向BOOL的属性,在这种情况下,它看起来像你的意思是它声明为一个BOOL而不是BOOL*。试着从而改变你的代码:

@property BOOL initialLogin; // note that the '*' has been removed 
@property BOOL PPAccepted; 

BOOL是标量类型,而不是一类,所以你不需要指BOOL用指针。

+1

非常感谢你....有时它的深夜会让人难以记起最简单的事情哈哈 – Keeano