0

我有几个类具有几乎相同的代码。它们之间只有一两个字符串不同。我想做的是从另一个定义这些函数的类中使它们成为“x”,然后使用常量或其他东西来定义那些不同的字符串。我不确定“x”是继承还是扩展或什么。这就是我需要帮助的地方。

例如:

对象A.m:

-(void)helloWorld {
    NSLog("Hello %@",child.name);
}

对象鲍勃.m:

#define name @"Bob"

对象乔.m

#define name @"Joe"

(我不确定定义字符串是否合法,但这说明了重点)

如果 objectBob.m 和 objectJoe.m 甚至不必定义方法,只需定义它们与 objectA.m 的关系,那将是理想的。有没有办法做这样的事情?它有点像协议,除了相反,我希望“协议”实际定义功能。


如果一切都失败了,我只会制作 objectA.m:

-(void)helloWorld:(NSString *name) {
    NSLog("Hello %@",name);
}

并让其他文件调用该函数(并且只是#import objectA.m)。

4

2 回答 2

2

只需在您的子类中创建一个-name方法(您需要一个基类,然后为每种类型创建一个子类)。

然后做:

- (void)helloWorld {
    NSLog(@"hello %@", [self name]);
}

编辑:修复了非 objc 之类的方法命名。再次编辑:固定方法。

于 2010-06-07T22:02:39.803 回答
0

对我来说听起来像是继承。helloWorld将方法定义为NSLog(@"Hello %@", name)并让子类为其name实例变量赋予不同的值。(请注意,我说的是实例变量,而不是预处理器宏,它们对此毫无用处。)

于 2010-06-07T22:02:43.667 回答