Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请参见同一方法中的变量=null ios_Ios_Objective C_Iphone - Fatal编程技术网

请参见同一方法中的变量=null ios

请参见同一方法中的变量=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

我使用库soap在nsdictionary中返回此函数,关闭后将其更改为nsarray];}然后输入nslog,它给出nsarray=null,但如果我把它放在方法中的方法关闭之前,则给出数据

- (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调用完成时运行一些代码,那么您应该在回调中放入块