Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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
Xml 无法正确获取变量_Xml_Swift - Fatal编程技术网

Xml 无法正确获取变量

Xml 无法正确获取变量,xml,swift,Xml,Swift,有人知道我怎么解决这个问题吗 问题是prepareForSegue函数没有获取chanceRain变量。由于某些原因,chanceRain在任务变量中只有一个值。有人知道怎么解决吗?我试图在操场上修复它,但无法在其中导入SWXMLHash 导入UIKit 导入SWXMLHash 类ViewController:UIViewController、UITableViewDelegate{ var cellContent=[] var indexOfTime=0 变应原= var defaults=n

有人知道我怎么解决这个问题吗

问题是prepareForSegue函数没有获取chanceRain变量。由于某些原因,chanceRain在任务变量中只有一个值。有人知道怎么解决吗?我试图在操场上修复它,但无法在其中导入SWXMLHash

导入UIKit 导入SWXMLHash 类ViewController:UIViewController、UITableViewDelegate{ var cellContent=[] var indexOfTime=0 变应原= var defaults=nsUserDefaultsSiteName:group.com.royvano.paraplu var rainInt:Int=0 @IBOutlet var cityInput:UITextField! func枚举索引器:XMLIndexer{ 用于索引器中的child.children{ NSLogchild.element!.name 列举儿童 } } @iAction func按钮指定:AnyObject{ var url=NSURLstring:http://api.worldweatheronline.com/free/v2/weather.ashx?key=ca89103dfe0a8b844a0a1e1249820&q= + cityInput.text.stringByReplacingOccurrencesOfString,带字符串:-+/+cityInput.text.stringByReplacingOccurrencesOfString,带字符串:-+/+&num\u of_days=2&tp=3&format=xml 让task=NSURLSession.sharedSession.dataTaskWithURLurl!,completionHandler:{data,response,error->Void in var urlContent=NSStringdata:数据,编码:NSUTF8StringEncoding 打印URL var xml=SWXMLHash.parseurlContent! 对于xml格式的元素[数据][天气][0][每小时][self.indexOfTime]{ self.chanceRain=elem[chanceofrain].element!.text! self.defaults?.setObjectself.chanceRain,forKey:rainPercentage self.defaults?.synchronize self.performsguewithidentifierbtn提交检查,发件人:self } 雪松素 } 任务。恢复 } 重写func PrepareForesGueegue:UIStoryboardSegue,发件人:AnyObject{ ifsegue.identifier==btnSubmitSegue{ var svc:viewthow=segue.destinationViewController作为viewthow svc.datapassed=有+self.chanceRain+%的下雨机会//但没有,是吗。。? } } 覆盖func viewDidLoad{ super.viewDidLoad //加载视图后,通常从nib执行任何其他设置。 cellContent=[01:00,04:00,07:00,10:00,13:00,16:00,19:00,22:00] } func tableview tableview:UITableView,第节中的行数:Int->Int{ 返回cellContent.count } func tableViewtableView:UITableView,cellForRowAtIndexPath索引XPath:NSIndexPath->UITableViewCell{ 让cell=UITableViewCellstyle:UITableViewCellstyle.Default,reuseIdentifier:cell cell.textLabel?.text=\cellContent[indexPath.row] 返回单元} func tableview tableview:UITableView,didSelectRowAtIndexPath索引路径:nsindepath{ indexOfTime=indexPath.row } 覆盖函数未接收内存警告{ 超级。我收到了记忆警告 //处置所有可以重新创建的资源。 } } 还有这里的viewTwo类:

进口基金会 导入UIKit 类viewTwo:UIViewController{ @IBVAR标签:UILabel! var数据传递:字符串!= 覆盖func viewDidLoad{ label.text=datapassed} }
由于除了IBAction按钮_uo:,您还通过按钮按下触发segue,因此当segue发生时,chanceOfRain变量不会更新。这是因为chanceOfRain是在异步调用的块中更新的,这意味着更新它需要时间。更新时,prepareForSegue可能已经解决


若要解决此问题,请不要触发序列图像板中按钮按下的顺序。相反,使用标识符将其设置为从第一个ViewController到第二个ViewController的常规序列。然后,您可以在知道ChanceOffrain已更新后,在异步调用的块中调用performsguewithIdentifier_u2;:sender:。这将确保正确传递数据。

您可以修复代码格式吗?这很难读currently@royvano如果这就是你所说的正确格式化,那么我建议你开始放一些工作代码示例,而不是这一个。。。这一个不能像预期的那样工作。。。因为那远远不是很好的格式…你什么时候触发segue?是否在触发名为button_216;的函数的同一按钮上按下:?@ad121当按下函数按钮时,序列被触发printlnself.chanceRain语句是否返回任何值?