请参见同一方法中的变量=null ios
我使用库soap在nsdictionary中返回此函数,关闭后将其更改为nsarray];}然后输入nslog,它给出nsarray=null,但如果我把它放在方法中的方法关闭之前,则给出数据请参见同一方法中的变量=null ios,ios,objective-c,iphone,Ios,Objective C,Iphone,我使用库soap在nsdictionary中返回此函数,关闭后将其更改为nsarray];}然后输入nslog,它给出nsarray=null,但如果我把它放在方法中的方法关闭之前,则给出数据 - (void)showlinks { SYSoapClient *show_links_obj = [SYSoapClient new]; links_tags = [[NSMutableArray alloc] initWithObjects:@"empid", @"t
- (void)showlinks
{
SYSoapClient *show_links_obj = [SYSoapClient new];
links_tags = [[NSMutableArray alloc] initWithObjects:@"empid", @"type", nil];
links_vars = [[NSMutableArray alloc] initWithObjects:txt_username, type_user, nil];
[show_links_obj callSoapServiceWithParameters__functionName:@"getlinks"
tags:links_tags
vars:links_vars
callback:^(NSDictionary *result,
BOOL response)
{
link_raw_Data = [result allValues];
link_con_Data = [link_raw_Data componentsJoinedByString:@""];
//NSArray *links = [con_Data componentsSeparatedByString:@"@"];
links = [link_con_Data componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"@^"]];
NSUInteger x = links.count;
NSLog(@"%@",link_raw_Data);
//NSLog(@"%d",x);
//NSLog(@"%@",links[5]);
}];
NSLog(@"%@",links[5]);
}
从soap服务的回调参数判断,这是一个异步调用。这意味着它将立即返回,在后台线程上进行联网,并在完成后调用回调
由于它是异步的,并且不等待/阻塞,因此在从soap服务获取任何数据之前,将执行紧随其后的log语句。第二个nslog@%@,link[5];这已经发生了。如果您想在soap调用完成时运行一些代码,那么您应该在回调中放入块