Swift:让详细视图控制器知道数组可能存在也可能不存在

时间:2015-07-30 13:12:36

标签: swift uitableview optional

所以我正在制作食谱日记应用程序来存储食谱。在具有detail view controller属性的recipe中,有table view个成分,当您打开detail view controller时,您可以添加成分并将其显示在{{1}上}}。 table view core data是一对多,因此relationship recipe具有entity成分,并且该成分具有属性配方。

但是当我尝试添加NSOrderedSet时,在numberOfRowsInSection方法中,它告诉我在结尾放置一个return self.recipe?.ingredients.count但是当我这样做时会抛出一个!并且告诉我删除它。

它说

  

可选类型Int未展开的值

error

我也尝试了这个,但它也不起作用

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.recipe?.ingredients.count
}

2 个答案:

答案 0 :(得分:1)

您尝试使用

检查可选值是否等于0
if self.recipe?.ingredients.count == 0

如果值等于0,则仅返回true。如果值等于nil,则返回false(如果recipenil,则会返回recipes }。

而是尝试确定您的nil是否为if let recipe = self.recipe { //Check if self.recipe is not equal to nil and assign the value to recipe if it is not equal to nil. return recipe.ingredients.count }else{ /return 0 if recipe is equal to nil return 0 }

<img ng-src="{{ image || 'default-image.jpg' }}" />

答案 1 :(得分:0)

不确定这是否有效但请尝试

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if let recepies = self.recipe? {
        return recepies.ingredients.count
     }

    return 0
}

这将检查配方数组是否存在,如果存在则返回成分计数,否则返回0.