0 string iphone comparison http nsurlconnection
我是iphone编程的新手......我想做一个激活模块,它会发送一个带有PIN号的http请求然后读取响应......如果响应是"OK",它会打开一个主菜单...........问题是我收到的响应为"OK",但我无法将其与NSString进行比较@"OK"........... .so如何比较http响应与字符串...........请给你的建议...谢谢.
这是我的一段代码......
- (IBAction)submitPINAction:(id)sender {printf("inside submit btn"); mydata = [NSMutableData alloc]; NSURLRequest*request = [NSURLRequest requestWithURL:[NSURL URLWithString:@" http://192.168.100.3/WWTF/activationApp.php?PIN=11111 "]
cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
NSURLConnection *connection=[[NSURLConnection alloc] initWithRequest:request delegate:self];
if(connection)
{
mydata = [[NSMutableData data] retain];
}
else
{
//Handle error : Not received data
printf("No internet connection");
}
Run Code Online (Sandbox Code Playgroud)
}
- (void)connection:(NSURLConnection*)theConnection didReceiveData:(NSData*)incrementalData {printf("data received"); if(mydata == nil){mydata = [[NSMutableData alloc] initWithCapacity:2048]; } [mydata appendData:incrementalData]; NSString*temp = [[NSString alloc] initWithData:mydata encoding:NSASCIIStringEncoding];
NSString *string1 = @"OK";
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if([string1 isEqualToString:temp]){ // HERE IS THE PROBLEM, THE STRINGS ARE NOT GETTIN COMPARED
[prefs setBool:TRUE forKey: @"activationKey"];
// show the main menu
mainMenuController *mmC = [[mainMenuController alloc]initWithNibName:@"mainMenu" bundle:[NSBundle mainBundle]];
self.mmainMenuController = mmC;
[mmC release];
[self.view addSubview:[mmainMenuController view]];
}
else{
printf("in else");
[prefs setBool:FALSE forKey: @"activationKey"];
//show an alert
UIAlertView *alertActivationFail = [[UIAlertView alloc] initWithTitle:@"Activation Failed!" message:@"PIN is Incorrect" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertActivationFail show];
[alertActivationFail release];
}
Run Code Online (Sandbox Code Playgroud)
}
我会使用以下行,以查看响应实际上是OK字符串,因为它可能包含空格或其他字符.
NSLog(@"string1 = '%@' temp = '%@'", string1, temp);
Run Code Online (Sandbox Code Playgroud)
将这一行放在if语句之前,就像这样......
NSString *string1 = @"OK";
NSLog(@"string1 = '%@' temp = '%@'", string1, temp);
if([string1 isEqualToString:temp]){ // HERE IS THE PROBLEM, THE STRINGS ARE NOT GETTIN COMPARED
Run Code Online (Sandbox Code Playgroud)
如果额外的空格是比较失败的原因,那么可以使用以下方法从字符串中修剪空格:
+(NSString *)trim:(NSString *)value {
return [value stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1904 次 |
| 最近记录: |