我认为有些困难是直截了当的。我试图创建一个类对象的数组,但遇到了不同的问题。目标是创建一个包含另一类对象数组的类。
任何帮助表示赞赏:
// Basic class unit
@interface MobRec : NSObject {
NSString *MName;
int Speed;
}
@end
// Master Class holding an array of units
@interface MobDefs : NSObject {
MobRec *MobInfo;
}
@property(retain) MobRec *MobInfo;
@end
@synthesize MobInfo;
1)从阅读开始看来我应该创建和NSMutableArray,但是如何声明自定义类对象的NSMutableArray呢?我尝试的所有迭代都会导致错误。以前我已经将类中的大小预定义为MobInfo [20];但这对任何事情似乎都没有好处。
2)你如何正确地@Synthesize一组类对象?
答案 0 :(得分:3)
我认为你误解了@synthesize
的作用。它创建了访问器方法来获取和设置属性(即,它将创建一个getter方法来返回NSMutableArray和一个setter方法,以允许您将其替换为另一个NSMutableArray)。要创建NSMutableArray,您只需创建一个类,就像该类初始化程序中的任何其他对象一样。
答案 1 :(得分:2)
NSMutableArray在您添加(或读取)时没有任何类型检查,因此您可以添加任何对象。
在这种情况下,我会有类似的东西:
// MobRec Class
@interface MobRec : NSObject {
NSString *mName;
int speed;
}
@property(retain)NSString *name;
@property(assign)int speed;
@end
@implementation MobRec
@synthesize mName, speed;
@end
// MobDefs Class
#import "MobRec.h"
@interface MobDefs : NSObject {
NSMutableArray *mobInfo;
}
@property(retain) NSMutableArray *mobInfo;
@end
@implementation MobDefs
@synthesize mobInfo;
- (id)init {
mobInfo = [[NSMutableArray alloc] init];
MobRec *aNewMobRec = [[MobRec alloc] init];
[mobInfo addObject:aNewMobRec];
[aNewMobRec release];
}
我已经包含了添加到数组的基础知识,因此您可以看到它的使用方式。哦,不要忘记你必须在dealloc方法中释放MobInfo。
但主要是看NSMutableArray
答案 2 :(得分:0)
您的MobDefs
课程不是必需的,您可以直接使用NSMutableArray
。 NSArray
可以保存任何类型的对象,并且以与任何其他对象(例如MName
属性)相同的方式声明。