我開始在iPhone和iPad應用上工作,但仍不知道如何做某些事情。如何在Objective C中正確分發方法C
我正在開發一個具有登錄屏幕的應用程序。當我使用另一種應用程序語言進行開發時,我有一個名爲WebService
的類,其中我負責與Web服務進行通信並返回輸出或布爾值。
但在Objective C
我不知道該怎麼做。
這裏是我的代碼:
ViewController.m
- (IBAction)login:(id)sender {
/* Verify if username and password are correct */
Boolean loginCorrecto = [[WebService alloc] login:self.textFieldUsername.text password:self.textFieldPassword.text];
/* If login is correct, go to another view */
if (loginCorrecto) {
CupsViewController *cupsView = [self.storyboard instantiateViewControllerWithIdentifier:@"cupsViewController"];
[self.navigationController pushViewController:cupsView animated:YES];
}
/* If not, show an error message */
else {
}
}
WebService.m
- (Boolean)login:(NSString *)username password:(NSString *)password
{
/* HTTP POST */
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:URL_CUPS]];
[request setHTTPMethod:@"POST"];
NSString *postString = [NSString stringWithFormat: @"username=%@&password=%@", username, password];
[request setValue:[NSString stringWithFormat:@"%d", [postString length]] forHTTPHeaderField:@"Content-length"];
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)theData {
NSDictionary* jsonArray=[NSJSONSerialization
JSONObjectWithData:theData
options:0
error:nil];
//Get values of response of web service
status = [jsonArray objectForKey:@"status"];
message = [jsonArray objectForKey:@"message"];
if([status isEqualToString:@"Ok"]) {
id results = [jsonArray objectForKey:@"results"];
if(results != [NSNull null]) {
for(int r = 0; r < [results count]; r++) {
//Get more values
}
}
}
else {
//Show error
}
}
目標
所以我想要的是登錄方法WebService.m
,如果status
等於「Ok」,則返回true。但是當該方法結束時,狀態仍然是nil
。我需要做什麼?有什麼辦法可以做到這一點,我有我需要做的或我必須做Http Post
在ViewController.m
?
不涉及你的問題,如果你剛剛開始新的開發,然後嘗試'AFNetworking'。處理您的API請求很簡單和容易。 https://github.com/AFNetworking/AFNetworking – icodebuster