我对此有点新意,所以这可能是初学者的错误。问题是,当我向方法发送消息时,它不会连接。
这是调用方法:
-(BOOL) login:(LoginInfo *) info{
NSString *url = [NSString stringWithFormat:@"%@/%@?name=%@&password=%@", FAMORABLE_API_URL,FAMORABLE_API_ACTION_LOGIN, info.username, info.password];
NSDictionary* json = [self getJson:url];
NSString *token = [json objectForKey:@"Token"];
NSLog(@"results: %@", token);
LoginInfo *loginResult = [LoginInfo alloc];
loginResult.token = token;
//TODO
NSLog(@"test 1 %@", loginResult.token);
[clientService saveLoginInfo:loginResult];
return YES;
}
在最后一行上方,您可以看到我在clientService中发送到saveService的SaveLoginInfo,该客户服务在此文件中导入。
-(void) saveLoginInfo:(LoginInfo *)info{
NSLog(@"test 2 %@", info);
NSLog(@"test 3%@", info.token);
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:info.token forKey:KEY_TOKEN];
NSString *string = [defaults stringForKey:KEY_TOKEN];
NSLog(@"test 4%@", string);
// save it
[defaults synchronize];
if (!(info.token)){
self.currentUser = nil;
self.isLoggedOn=false;
}else{
self.currentUser = info;
self.isLoggedOn=true;
}
}
这是被调用的方法。我已经发布了一堆日志,如果我做错了,大多数都是安全的,但是没有一个被执行......
您对可能出现的问题有任何想法吗?
提前致谢 汤姆
答案 0 :(得分:0)
行clientService
中的[clientService saveLoginInfo:loginResult];
是您班级中的实例变量吗?
如果是这样,请确保在调用之前已将对象实例化。 (在您班级的init
方法中,如果是viewDidLoad
,则可能是UIViewController
。)
E.g。
- (void)viewDidLoad {
[super viewDidLoad];
clientService = [[MyClientService alloc] init];
}
- (id)init {
self = [super init];
if (self) {
clientService = [[MyClientService alloc] init];
}
return self;
}
(确保您还使用dealloc
方法发布了该实例。