我有一个 web 服务和 ios 应用程序。我使用 ASIHTTPRequest.h, ASIFormDataRequest.h
标头来处理与我的 php 脚本/mysql 数据库的连接
在其中一个视图控制器中,我需要向我的 Web 服务发送多个请求并处理每个响应,并且每次请求后都需要刷新视图控制器的视图和方法。
ASIHTTPRequest
只有一个(void)requestFinished:(ASIHTTPRequest *)request
事件,所以我需要在块内处理我的响应(void)requestFinished:(ASIHTTPRequest *)request
来处理请求我的 requestfinish 方法中的条件if ([checkRequest rangeOfString:@"like"].location != NSNotFound)
不起作用
VoteMe.h
@interface VoteMe : UIViewController<UITextFieldDelegate>{
NSMutableString *checkRequest;
}
@property (retain, nonatomic) NSMutableString *checkRequest;
投票.m
@synthesize checkRequest;
- (void)viewDidLoad
{
[self showPicture];
}
-(void)showPicture
{
checkRequest =[NSMutableString stringWithString:@"showPicture"];
//request a random picture url, from server
NSURL *url = [NSURL URLWithString:showpicture];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
-(IBAction)voteLike:(id)sender{
checkRequest =[NSMutableString stringWithString:@"like"];
NSURL *url = [NSURL URLWithString:voteup];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
[self showPicture];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
if ([checkRequest rangeOfString:@"like"].location != NSNotFound) {
//do smth
}
if ([checkRequest rangeOfString:@"showPicture"].location != NSNotFound) {
//do someth else
}
}
上面代码的问题,当-(IBAction)voteLike:(id)sender
被调用时,它应该将字符串更改checkRequest
为“喜欢”,所以当响应ASIFormDataRequest
到达时,如果条件可以正常工作
在断点我看到 checkRequestVariable is not a CFString
当我使用Nsstring
而不是NSMutableString
它时,结果相同
我知道之后我需要retain
Stringrelease
但我alloc
不应该使用我仍然需要retain/release
我怎样才能实现我的目标?是否有更好的解决方案来检查 if 语句或修复NSString
上述NSmutableString
问题?