从选择器视图中选择数据时,我得到了项目ID:12。现在我的问题是我想将该12(项目ID)发送到NSURL,以便在更改项目时分别加载我的任务。以下是我的代码:
ViewDidload:
NSString *nsTaskurllocal = @"http://xxxx/xxx/";
NSString *projectsLabel = [self.lblProjects text];
NSString *aString = [nsTaskurllocal stringByAppendingString:projectsLabel];
NSLog(@"aString : %@", aString);
NSString *temp = [aString stringByAppendingString:@"/"];
int usrid = 313;
NSString *usridstring = [NSString stringWithFormat:@"%d", usrid];
NSString *finalurl = [usridstring stringByAppendingString:temp];
NSURL *nstaskurl = [NSURL URLWithString:finalurl];
NSLog(@"nstaskurl : %@", nstaskurl);
NSData *nstaskpostData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *nstaskpostLength = [NSString stringWithFormat:@"%lu", (unsigned long)[nstaskpostData length]];
NSMutableURLRequest *nstaskrequest = [[NSMutableURLRequest alloc] init];
[request setURL:nstaskurl];
[request setHTTPMethod:@"POST"];
[request setValue:nstaskpostLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/projectpicker" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/jsonArray" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:nstaskpostData];
NSError *nstaskerror = [[NSError alloc] init];
NSHTTPURLResponse *nstaskresponse = nil;
NSData *nstaskurlData=[NSURLConnection sendSynchronousRequest:nstaskrequest returningResponse:&nstaskresponse error:&nstaskerror];
NSURLRequest *nstaskurlRequest = [NSURLRequest requestWithURL:nstaskurl
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:30];
// Make synchronous request
nstaskurlData = [NSURLConnection sendSynchronousRequest:nstaskurlRequest
returningResponse:&nstaskresponse
error:&nstaskerror];
if ([nstaskresponse statusCode] >= 200 && [nstaskresponse statusCode] < 300)
{
NSString *nstaskresponseData = [NSJSONSerialization JSONObjectWithData:nstaskurlData
options:NSJSONReadingAllowFragments error:&nstaskerror];
NSArray *nstaskentries = [NSJSONSerialization JSONObjectWithData:[nstaskresponseData dataUsingEncoding:NSUTF8StringEncoding]
options:0 error:&nstaskerror];
if(!nstaskentries)
{
NSLog(@"Error : %@", nstaskerror);
}
else{
for (NSDictionary *nstaskentry in nstaskentries) {
taskID = [nstaskentries valueForKey:@"ID_TASK"];
taskNames = [nstaskentries valueForKey:@"TASk_NAME"];
//NSLog(@"Error : %@", taskNames); //log to see the result in console // by Kiran
}
_projectpicker.delegate = self;
_projectpicker.dataSource = self;
}
} else {
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
NSNumber *myProjectArrayString = [projID objectAtIndex:row];
//NSNumber *myTaskArrayString = [taskID objectAtIndex:row];
//NSLog(@"%@",myArrayString);
//NSLog(@"%@",myTaskArrayString);
lblProjects.text = [NSString stringWithFormat:@"%@",myProjectArrayString];
//lblProjects.hidden = YES;
lblTasks.text = [taskNames objectAtIndex:[pickerView selectedRowInComponent:1]];
//lblTasks.text = [NSString stringWithFormat:@"%@", myTaskArrayString];
lblSubTasks.text = [subtaskNames objectAtIndex:[pickerView selectedRowInComponent:2]];
}
lblProjects.text有项目ID:12所以我需要将这个12传递给我的aString,以便我可以追加并传递给NSURL Thnaks
答案 0 :(得分:0)
尝试通过除以组件来拆分字符串,因此[splitArray lastObject]是你的“12”
NSString *nsTaskurllocal = @"http://xxxx/xxx/";
NSString *projectsLabel = @"Project ID :12";
NSArray *splitArray = [projectsLabel componentsSeparatedByString:@":"];
NSString *aString = [NSString stringWithFormat:@"%@%@", nsTaskurllocal, [splitArray lastObject]];
aString现在应该是http://xxxx/xxx/12
。
答案 1 :(得分:0)
试试这个,我希望这会有所帮助,如果你有任何问题,请告诉我
-(void)postMethod
{
NSString *urlString = [NSString stringWithFormat:@"http:******"];
NSString *userIDString=@"131";
NSString *productIDString=@"12";
NSString * productIdString =[NSString stringWithFormat:@"%@/%@",userIDString,productIDString];
NSData* postData= [productIdString dataUsingEncoding:NSUTF8StringEncoding];
NSString *decode = [[NSString alloc] initWithData:postData encoding:NSUTF8StringEncoding];
NSLog(@"%@",decode);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:string] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:postData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString*s11= [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
}