我在swift中遇到了一个奇怪的问题.我有类PlayCard的代码:
- var rank: NSInteger {
- get{
- return self.rank
- }
- set(rank){
- self.rank = rank
- }
- }
- var suit: NSString {
- get{
- return self.suit
- }
- set(suit){
- self.suit = suit
- }
- }
- init(suit: NSString,rank: NSInteger) {
- super.init()
- self.suit = suit
- self.rank = rank
- }
我在另一个类中使用此init()方法,实现如下所示:
- init() {
- super.init(cards: [])
- for suit in PlayingCrad.validSuit() {
- var rank: Int = 0
- for rank; rank <= PlayingCrad.maxRank(); rank++ {
- var card = PlayingCrad(suit: suit,rank: rank)
- addCard(card)
- }
- }
- }
- self.suit = suit
- EXC_BAD_ACCESS(code=2,adress=0x7fff5c4fbff8)
但是当我从rank和suit属性中删除了setter和getter时,它工作得很好,没有出现任何错误.
你能解释一下为什么会出现这个EXC_BAD_ACCESS错误吗?
感谢您的帮助