我有几个类几乎相同的代码。它们之间只有一两个字符串不同。我想做的是从另一个定义那些函数的类中使它们成为“x”,然后使用常量或其他东西来定义那些不同的字符串。我不确定“x”是继承还是扩展或什么。这就是我需要帮助的地方。
例如:
objectA.m:
-(void)helloWorld {
NSLog("Hello %@",child.name);
}
objectBob.m:
#define name @"Bob"
objectJoe.m
#define name @"Joe"
(我不确定定义字符串是否合法,但这可以解决问题)
如果objectBob.m和objectJoe.m甚至不必定义方法,只需要它们与objectA.m的关系,那将是理想的。有没有办法做这样的事情?它有点像协议,除了相反,我希望“协议”实际定义函数。
如果一切都失败了,我只会制作objectA.m:
-(void)helloWorld:(NSString *name) {
NSLog("Hello %@",name);
}
让其他文件调用该函数(只有#import objectA.m
)。
答案 0 :(得分:2)
只需在子类中创建一个-name
方法(您需要一个基类,然后是每个类型的子类)。
然后做:
- (void)helloWorld {
NSLog(@"hello %@", [self name]);
}
编辑:修复非objc之类的方法命名。 再次编辑:修复方法。
答案 1 :(得分:0)
听起来像是对我的继承。将helloWorld
方法定义为NSLog(@"Hello %@", name)
,并让子类为其name
实例变量赋予不同的值。 (请注意,我所说的是实例变量,而不是预处理器宏,这对于此目的是无用的。)