我调用NSMutableArray时为空

时间:2011-07-07 14:01:55

标签: objective-c ipad nsmutablearray

当我尝试从一个不同的类调用一个NSMutableArray时,它为什么是空的?

CLASS A

.h
@interface Dashboard : UIViewController {
    NSMutableArray *tablearrayCREDITS;

}
@property(nonatomic,retain)NSMutableArray *tablearrayCREDITS;

.m
@synthesize tablearrayCREDITS;

我用JSON数组中的数据填充它。这一切都可以正常工作..

CLASS B

.h
    #import "Dashboard.h"

    @interface CreditsAndDebits : UIViewController {


    //nothing needed here..

}

.m

@implementation CreditsAndDebits
@synthesize selectedIndexPath;
    NSMutableArray *thearray;

- (void)viewDidLoad {
    Dashboard *db = [[Dashboard alloc]init];
    thearray = db.tablearrayCREDITS;
}

//当我调试它并在我分配仪表板的位置设置断点时... tablearrayCREDITS说对象0 ??,我不明白?当我打电话给它时为什么会变空?

2 个答案:

答案 0 :(得分:0)

- (void)viewDidLoad {

    Dashboard *db = [[Dashboard alloc]initWithNibName:@"Dashboard" bundle:nil...........];


    db.tablearrayCREDITS=[[NSMutableArray alloc]init];

    [db.tablearrayCREDITS addObject:@"madhu"];

    thearray = db.tablearrayCREDITS;


//here nslog them
}

//you have to create Dashboard object not mutable array

答案 1 :(得分:0)

您调用的数组为空,因为它可能尚未初始化。您需要在调用之前初始化该视图。您可以使用该视图的init方法执行此操作。

或者您可以在启动应用程序时初始化该数组。您可以在AppDelegate中的application didFinishLaunchingWithOptions中执行此操作。