Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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
Swift 创建计数器以跟踪为核心数据对象选择UITableViewcell的次数_Swift_Core Data - Fatal编程技术网

Swift 创建计数器以跟踪为核心数据对象选择UITableViewcell的次数

Swift 创建计数器以跟踪为核心数据对象选择UITableViewcell的次数,swift,core-data,Swift,Core Data,在一个应用程序上工作,该应用程序跟踪用户在tableview中的选择,以及用户选择特定对象的次数,最大限制为2,如果在弹出数字2后选择单元格,则该单元格将重置为0。我还试图将对象总数限制为30个。我的核心数据实体中有两个与此相关的属性。所选号码和deckCardCount所选号码与对象直接相关,deckCardCount是存储的对象总数 我不确定这是否是最好的解决方法,因为我在脑海中也曾想过,限制可能仅限于呈现对象的视图控制器。我需要一些指导和一些一般性的帮助。目前,我创建的计数器实际上似乎不起

在一个应用程序上工作,该应用程序跟踪用户在tableview中的选择,以及用户选择特定对象的次数,最大限制为2,如果在弹出数字2后选择单元格,则该单元格将重置为0。我还试图将对象总数限制为30个。我的核心数据实体中有两个与此相关的属性。所选号码和deckCardCount所选号码与对象直接相关,deckCardCount是存储的对象总数

我不确定这是否是最好的解决方法,因为我在脑海中也曾想过,限制可能仅限于呈现对象的视图控制器。我需要一些指导和一些一般性的帮助。目前,我创建的计数器实际上似乎不起作用

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    var myDeckCards: DeckCards?
    let listed = frc.objectAtIndexPath(indexPath) as! Cards
    // check: is there already a DeckCards object for this Card and this Deck?
    let deckCardsSet = listed.cardselections
    println("The set of DeckCards for that Card is \(deckCardsSet.count)")
    for eachDeckCard in listed.cardselections {
        let myDeckCard = eachDeckCard as! DeckCards
        if myDeckCard.cardsstored == passedDeckObject {
            // There is already a DeckCard object for this Card and currentDeck
            myDeckCards = eachDeckCard as? DeckCards
        }
    }
    if myDeckCards == nil {
        // There is no DeckCard object for this Card and currentDeck
        // So create one...
        myDeckCards = NSEntityDescription.insertNewObjectForEntityForName("DeckCards", inManagedObjectContext: managedObjectContext!) as? DeckCards
        myDeckCards!.cardsselected = listed
        myDeckCards!.cardsstored = passedDeckObject!
    }
    // your code to determine numberSelected here; I'll assume 2!
    var cardCount = 0
    func addCards() {
        if cardCount == 0 {
            cardCount++
        } else {
            if cardCount == 1 {
                cardCount++
            } else {
                if cardCount == 2 {
                cardCount == 0
            }
            }
        }
    }
    addCards()
    println(cardCount)

    myDeckCards!.numberSelected = cardCount
    managedObjectContext?.save(nil)

}

为什么您有一个指向总数的属性?这没有任何意义。保留一个变量,用于跟踪总数

为什么要使用复数来描述托管对象?为什么卡片应该有一个类名
Cards
-用单数重构

最后,您的add函数非常冗长。这应该很简单

timesSelected = timesSelected == 2 ? 0 : timesSelected + 1

一般来说,编程还是新的,所以基本上,变量将限制用户总共只选择30个对象,并将选择的总时间相加,以确定是否已达到该限制?