为了账号安全,请及时绑定邮箱和手机立即绑定

在目标C中向NSMutableArray添加对象时遇到困难

在目标C中向NSMutableArray添加对象时遇到困难

撒科打诨 2019-07-16 10:38:32
在目标C中向NSMutableArray添加对象时遇到困难我正在使用iPhoneSDK,有一个问题是做一些简单的事情。我试图添加一个NSNumber对象的NSMutableArray实例变量。我试着添加NSNumber卡片到NSMutableArray视觉卡阵列但是,在没有中断的情况下,它不会被添加到数组中。这是密码。/////////////////////////////////////////////////////// Inside the header file Class.h@interface MyViewController : UIViewController {    NSMutableArray *viewedCardsArray;    //snip ...}@property (nonatomic, retain) NSMutableArray *viewedCardsArray;@end///////////////////////////////////////////////////////     Inside the methods file Class.m#import "StudyViewController.h"@implementation StudyViewController@synthesize viewedCardsArray      //snip ...- (IBAction)doShowCard {    //snip ...    NSNumber *cardIdObject = [[NSNumber alloc] initWithInt:(int)[self.currentCard cardId]];    [viewedCardsArray addObject: cardIdObject];    [cardIdObject release];}因此,此代码将执行,并且似乎不会泄漏(根据泄漏性能工具)。但是,当逐步执行代码时,在任何时候都不会。CardIdObject出现在视觉卡阵列.综上所述,我知道这些基本问题对于objc新手(像我一样)来说是很常见的,所以提前道歉吧!
查看完整描述

3 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

您是否初始化了viewedCardsArray?如果没有,您需要找个地方-这通常是在init方法:

- (id)init{
    self = [super init];
    if(self) {
        viewedCardsArray = [[NSMutableArray alloc] init];
    }
    return self;}

然后在dealloc方法:

- (void)dealloc{
    [viewedCardsArray release];
    [super dealloc];}


查看完整回答
反对 回复 2019-07-16
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

Perspx概述了初始化数组的一种方法。但是,还可以使用NSArray提供的类方法:

self. viewedCardsArray = [NSMutableArray array];

这可以进入它的内部或其他地方。

注意:对象将自动释放。


查看完整回答
反对 回复 2019-07-16
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

不要忘记使用[超级init]的结果。它可以返回零或另一个对象。永远不要假设它返回了你以前的自我,因为当它不返回的时候,它就会释放它,如果你对这个死掉的对象做进一步的初始化,很可能会导致崩溃。最简单的方法是如果(Self=[Superinit]){/*初始化这里*/}返回Self;(取决于您自己的风格-例如,您可以在条件之前进行赋值,如果您愿意的话)。

查看完整回答
反对 回复 2019-07-16
  • 3 回答
  • 0 关注
  • 497 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信