我创建了一个用于保存用户和设备信息的类。这个名为Account
的班级。
这是类代码(ARC项目):
#import <Foundation/Foundation.h>
@interface Account : NSObject
@property(strong, nonatomic) NSString *deviceID;
@property(strong, nonatomic) NSString *accountID;
@property(strong, nonatomic) NSString *oAuthCode;
@property(strong, nonatomic) NSString *type;
@property(strong, nonatomic) NSString *deviceToken;
@property(strong, nonatomic) NSString *os;
@property(strong, nonatomic) NSString *deviceName;
@end
#import "Account.h"
@implementation Account
@synthesize deviceID = _deviceID;
@synthesize deviceName = _deviceName;
@synthesize deviceToken = _deviceToken;
@synthesize type = _type;
@synthesize oAuthCode = _oAuthCode;
@synthesize accountID = _accountID;
@synthesize os = _os;
-(NSString*)deviceID{
return [ThinkerBell_OpenUDID value];
}
-(NSString*)deviceToken{
return [[NSUserDefaults standardUserDefaults]valueForKey:K_DEVICE_TOKEN];
}
-(NSString*)os{
return [[UIDevice currentDevice]systemVersion];
}
-(NSString*)deviceName{
return [[UIDevice currentDevice]model];
}
@end
这里我正在创建一个实例并试图访问他的属性:
_ac = [[Account alloc]init];
_ac.accountID = @"rf@gmmail.com";
_ac.type = @"rf@gmmail.com";
_ac.oAuthCode = @"rf@gmmail.com";
_ac.deviceName = @"rf@gmmail.com";
_ac.deviceToken = @"rf@gmmail.com";
_ac.deviceID = @"rf@gmmail.com";
_ac.os = @"rf@gmmail.com";
我将此对象作为方法的参数传递:
[self appendAccount:_ac];
当我尝试阅读Account
实例时,他的字段是。
-(void)appendAccount:(Account*)account{
NSLog(@"%@",account);
}
任何想法?
答案 0 :(得分:1)
这是因为你没有设置来反映吸气剂。该值写入_deviceid,但是从thinkerbell中读取......
答案 1 :(得分:1)
您的类中没有实现“description”方法,因此NSLog没有任何可以打印出来的方法。
以下是你如何做到的:
@implementation Account
- (NSString *)description
{
return [NSString stringWithFormat:@"<Account ID %@>", self.accountID];
}
@end
此外,删除这些代码行,通常不需要它们并且可能导致问题:
@synthesize deviceID = _deviceID;
@synthesize deviceName = _deviceName;
@synthesize deviceToken = _deviceToken;
@synthesize type = _type;
@synthesize oAuthCode = _oAuthCode;
@synthesize accountID = _accountID;
@synthesize os = _os;
(你可能从旧的示例代码中得到了这个,我建议找一些更近期和更新的东西)