【发布时间】:2010-09-29 11:55:35
【问题描述】:
我有一个 character 具有这种结构的模型类:
@interface CharacterModel : NSObject
{
// parent of this character
CharacterModel *parentChar;
// basic details
NSString *fname, *sname, *nick;
NSString *char_type; // categories of characters: dwarf, etc
// health
int health;
// cash
double cash;
double graft;
// flags
bool is_cop, is_player, is_ai, is_playable;
// Skills
int skill_speed;
int skill_stamina;
int skill_aggr;
int skill_another;
int skill_somethingelse;
// Total = 100
// Hidden RPG skills
int corruption;
int greed;
// Rep skills
int reputation;
// Misc. flags
int active, picked, is_locked;
}
问题是两件事。
1) 我需要在 .h 文件的 @property (nonotomic)... 部分重写此结构,并且我需要为 .m 文件的 @synthesize 部分重新编写此结构
有没有办法减少重新编写东西的需要;我可以将所有这些都放在一个结构或其他东西中然后@synthesize 吗?
2) 构造函数的函数名会很长。
我真的,真的不想编写一个包含数百个变量/字段的构造函数。
即:
-(id)initCharacter:(NSString *)name, and every other class variable mentioned above ...
有没有办法解决这个问题?
我正在考虑做一个 NSMutableDictionary,但你仍然需要为你想要的每个字段编写一个构造函数。
在这方面的任何帮助都会很棒。
谢谢
【问题讨论】:
-
一个角色不应该有两个父母吗?
-
其他一些观察:标志 is_cop、is_player、is_playable 可以在一个枚举中,而不是三个单独的布尔标志。货币不是浮点数,现金或 NSDecimalNumber 使用整数类型。加起来为 100 的属性可能是技能对象的属性,具有执行约束的业务逻辑。
-
哇,那里有很多信息。一个角色只有 1 个父母(或没有)——我不知道为什么一个角色会有 2 个父母。我不确定枚举是什么,但我会查一下。我将按照建议使用 Currency as int。技能对象听起来很酷,我得研究一下。