UISwitch不会让我设置默认状态

时间:2015-04-08 12:01:29

标签: ios swift

我有一个包含UICell元素的自定义UISwitch。当我呈现我的表时,cellForRowAtIndexPath()将检查用户首选项是否与特定类别匹配,如果它们是订阅,否则它们不是。我写了一些逻辑来根据这个结果切换开关:

if let userPreferences = user["preferences"] as? Array<AnyObject>
{
    if userPreferences[indexPath.row].objectId == game.getGameId() {
        prefCell.subscribed?.setOn(false, animated: true)
    }
}

我已经断开了禁用开关的行,并且它在userPreferences集合中检索到的当前11个项目中断了9次,但是我的UI上的所有开关都没有更新。为什么会这样?

编辑:经过一些进一步的测试后,似乎if语句总是得到满足,这是非常奇怪的,因为如果字符串不匹配,Swift仍然声称他们做了

例如,如果我有一个ID列表

xyz12345
abc12345
efg12345

执行以下循环:

if let userPreferences = user["preferences"] as? Array<AnyObject>
{
    for preference in userPreferences
    {
       if preference.objectId == game.getGameId()
       {
           prefCell.subscribed.on = true;
       } else {
           prefCell.subscribed.on = false;
       }
    }
}

第一次比较可能是preference = xyz12345game.getGameId() = abc12345。我希望调用第二种情况,因为这些字符串肯定不匹配,但是情况传递为true并且设置了开关,为什么我目睹了这种行为?

0 个答案:

没有答案