Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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
Ios 无法使用委托更新UITableViewCell中的标签_Ios_Swift_Uitableview - Fatal编程技术网

Ios 无法使用委托更新UITableViewCell中的标签

Ios 无法使用委托更新UITableViewCell中的标签,ios,swift,uitableview,Ios,Swift,Uitableview,我的应用程序中有一个食物日记,可以记录你每天吃的食物,但我正在努力更新我的UITableViewCell中的卡路里标签。我的应用程序在我按下“保存到食物日记”时崩溃,错误如下: "fatal error: unexpectedly found nil while unwrapping an Optional value" 以下是我在我的PopUpVC(UIViewController中的代码,用户可以看到这些代码来输入FoodName和carries) 然后我将来自食物和卡路里UItextFi

我的应用程序中有一个食物日记,可以记录你每天吃的食物,但我正在努力更新我的
UITableViewCell
中的卡路里标签。我的应用程序在我按下“保存到食物日记”时崩溃,错误如下:

"fatal error: unexpectedly found nil while unwrapping an Optional value"
以下是我在我的
PopUpVC
UIViewController
中的代码,用户可以看到这些代码来输入
FoodName
carries

然后我将来自食物和卡路里
UItextFields
的输入传递到我的
FoodDiaryVC

func didAddRow(name: String, calories: String) {        
    cals.calories.text = calories    
    print(name)
    print(calories)
}   
我添加了显示错误和
ViewController
的图片。我不确定它为什么会发现/返回零?我基本上只是试图将我的卡路里标签设置为输入量(或一天中卡路里的累积量)


您的
cals
carries
对象为
nil
,导致崩溃。您未在发布的代码中包含此对象,但请确保在访问它之前已实例化该对象。

您好,我不知道是什么原因导致了崩溃,但我确信可以对其进行调试。按照我的建议执行以下步骤。将方法didAddRow更改为

func didAddRow(name: String, calories: String) {
   if(calories.characters.count != 0 && cal != nil)   {
      cal.calories.text = calories 
   }
    print(name)
    print(calories)
}

如果这不能给你合适的结果,那么试着用这种方法打印卡路里和卡路里。检查出口并在此方法中设置断点。

确保cals或卡路里对象为nill,正如@oskar所说,确保在访问这些var之前创建了这些var的对象。是我的FoodDiaryVC实现了弹出窗口的委托@dipi删除了之前与委托相关的注释。请不要引用以前的评论。cals是对我的uitableviewcell的引用,我已经用我的caloriesforCell的图片更新了帖子。所以基本上我有cals作为cals=卡路里forcell()@vadian@thelegendary3请不要发布屏幕截图,发布代码/文本。我将单元格设置为let cals=caroriesfordiary(),作为我的FoodDiaryVC中的类级别变量。然后在委托函数中,我将标签抓取为cals.calorieslabel.text。这不是正确的方法吗?你能显示卡路里的热量计算(或结构)吗?你没有显示
caroriesfordiary()
的功能,所以说不出有什么问题。不管怎样,像这样访问单元及其接口元素都不是一个好主意。相反,您应该保留一个单独的模型逻辑并重新加载tableview以反映值的更改。@我已经更新了我的帖子!caloriesforDiary是我的UITableviewcell,它有标签AHH,有u,cals变量在哪里声明?看来问题并没有你们在这里提出的那个么大。请说明清楚的问题,认为你们试图在tableview上设置新行,但你们在错误的地方,若可能的话,上传全部三个类。单元格、viewcontroller和弹出式视图控制器。因此,由于我创建了UITableViewCell的新实例,它将删除导致崩溃的插座。我不知道如何对类进行适当的引用,使其内部可以有值。有什么想法吗?
func didAddRow(name: String, calories: String) {
   if(calories.characters.count != 0 && cal != nil)   {
      cal.calories.text = calories 
   }
    print(name)
    print(calories)
}