在Ruby中,有模块,您可以通过"混入"模块来扩展类.
module MyModule
def printone
print "one"
end
end
class MyClass
include MyModule
end
theOne = MyClass.new
theOne.printone
>> one
Run Code Online (Sandbox Code Playgroud)
在Objective-C中,我发现我有一组常用的方法,我想要一些Class来"继承".如果不创建一个公共类并从该公共类派生所有其他方法,我可以通过什么方式实现这一目标?
说我上课了
@interface Person : NSObject { NSString *name; }
Run Code Online (Sandbox Code Playgroud)
我需要在课堂上获得NSString的名字
Person *person = [[Person alloc] init];
NSLog(@"Name of variable %s\n", _NameofVariable_(person->name));
Run Code Online (Sandbox Code Playgroud)
感谢您的回答,这是我从回复中提出的解决方案
//returns nil if property is not found
-(NSString *)propertyName:(id)property {
unsigned int numIvars = 0;
NSString *key=nil;
Ivar * ivars = class_copyIvarList([self class], &numIvars);
for(int i = 0; i < numIvars; i++) {
Ivar thisIvar = ivars[i];
if ((object_getIvar(self, thisIvar) == property)) {
key = [NSString stringWithUTF8String:ivar_getName(thisIvar)];
break;
}
}
free(ivars);
return key;
}
Run Code Online (Sandbox Code Playgroud)