处理从桌面视图跟踪用户选择的应用程序,以及他们选择特定对象的最大限制为2的次数,如果在弹出数字2后选择了单元格,则重置为0。我也试图将对象总数限制为30.我的核心数据实体中有2个与此相关的属性。 numberelected和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)
}
答案 0 :(得分:1)
为什么你有一个引用总数的属性?这没有任何意义。保留一个变量来跟踪总数。
为什么使用复数来描述您的托管对象?为什么卡片的名称为$var
- 重构为单数!
最后,你的添加功能非常冗长。这应该像
一样简单Cards