objective-c 局部变量报错

objective-c 局部变量报错

三月梨花 发布于 2021-11-26 字数 4976 浏览 760 回复 7

这是Deck.h的代码

#ifndef Machismo_Deck_h

#define Machismo_Deck_h

#import <Foundation/Foundation.h>

#import "Card.h"

@interface Deck : NSObject

-(void)addCard:(Card *)card atTop:(BOOL)atTop;

-(void)addCard:(Card *)card;

-(Card *)drawRandomCard;

@end

#endif

下面是Deck.m的代码

#import "Deck.h"

@interface Deck()

//private methods are declared here

@property (strong, nonatomic) NSMutableArray *cards;

@end

@implementation Deck

-(NSMutableArray *)cards{

    if (!_cards) {

        _cards = [[NSMutableArray alloc] init];

    }

    return _cards;

}

-(void)addCard:(Card *)card atTop:(BOOL)atTop{

    if (atTop) {

        [self.cards insertObject:card atIndex:0];

    } else {

        [self.cards addObject:card];

    }

}

-(void)addCard:(Card *)card{

    [self addCard: card atTop: NO];

}

-(Card *)drawRandomCard{

    Card *randomCard = nil;//Parse Issue Expected expression

    if ([self.cards count]) {

        unsigned index = arc4random() % [self.cards count];

        randomCard = self.cards[index];//Semantic Issue Use of undeclared identifier 'randomCard'

        [self.cards removeObjectAtIndex:index];

    }

    return randomCard;//Semantic Issue Use of undeclared identifier 'randomCard'

}

@end

红色的是错误的地方,刚接触Objective-C~ 请老司机看看为什么报错~

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

带上头具痛哭 2021-12-01 7 楼

xcode经常这样,很莫名其妙的

小情绪 2021-12-01 6 楼

回复
原来这样啊~谢谢你~

疾风者 2021-12-01 5 楼

引用来自“首席撸脱臼”的评论

目测是因为没识别出card类,检查下把,或者删了这几行重写下[13]

沙与沫 2021-12-01 4 楼

现在莫名其妙的就好了,但是这是怎么造成的,请问你知道吗?是xcode的毛病还是什么原因~

情场扛把子 2021-11-30 3 楼

目测是因为没识别出card类,检查下把,或者删了这几行重写下[13]

冷默言语 2021-11-30 2 楼

引用来自“人独立”的评论

我觉得你没有持有randomCard,身为局部变量,在if执行体中设置指针之后,很有可能在if执行后被释放掉,不确定啊 只是感觉。。。

少女净妖师 2021-11-29 1 楼

我觉得你没有持有randomCard,身为局部变量,在if执行体中设置指针之后,很有可能在if执行后被释放掉,不确定啊 只是感觉。。。