在我创建的类中没有执行的代码存在一些问题,并认为我在这里正确初始化和实现了所有文件。有一个类有另一个类的数组。然后在代码中最终实现但由于某种原因,除了主代码中[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输出是“就在创建之前......”
答案 0 :(得分:1)
您似乎没有初始化mobdef
。添加以下内容:
mobdef = [[Mobdefs alloc] init];
在您调用方法之前到main.m
。
Objective-C默默地忽略对nil
的调用,因为mobdef
最初会被初始化。
答案 1 :(得分:0)
你在main.m中分配和初始化mobdef吗?