objective c类代码没有执行?我的问题是什么?

时间:2009-12-31 05:18:58

标签: objective-c

在我创建的类中没有执行的代码存在一些问题,并认为我在这里正确初始化和实现了所有文件。有一个类有另一个类的数组。然后在代码中最终实现但由于某种原因,除了主代码中[mobdefs createTable]之前的那个之外,没有任何NSLog调用似乎执行。所有帮助表示赞赏...

// Mobdefs.h
@interface Mobdefs : NSObject {

    @public NSMutableArray *mobInfo;
}

@property(retain) NSMutableArray *mobInfo; 

-(void) createTable;

@end

//  Mobdefs.m
#import "Mobdefs.h"
#import "Mobrec.h"

@implementation Mobdefs

@synthesize mobInfo;

- (id) init
{
mobInfo = [[NSMutableArray alloc] init]; 
return self;
}

-(void) addmobrec
{
MobRec *aNewMobRec = [[MobRec alloc] init];
aNewMobRec.mName=@"newbie";
[mobInfo addObject:aNewMobRec];  
[aNewMobRec release]; 
NSLog(@"MobRec Added\n");  
}

-(void) createTable 
{
NSLog(@"Populating mob table.\n"); // *** THIS CODE NEVER SEEMS TO GET EXECUTED
}

@end


//main.h
Mobdefs *mobdef;  


//main.m 
NSLog(@"just before createTable call\n");
[mobdef createTable];   

虽然在main中调用了createTable代码,但我得到的唯一NSLog输出是“就在创建之前......”

2 个答案:

答案 0 :(得分:1)

您似乎没有初始化mobdef。添加以下内容:

mobdef = [[Mobdefs alloc] init];
在您调用方法之前

main.m

Objective-C默默地忽略对nil的调用,因为mobdef最初会被初始化。

答案 1 :(得分:0)

你在main.m中分配和初始化mobdef吗?