小编hac*_*nal的帖子

Objective-C是否像Ruby一样支持Mixin?

在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来"继承".如果不创建一个公共类并从该公共类派生所有其他方法,我可以通过什么方式实现这一目标?

ruby mixins objective-c-2.0

26
推荐指数
3
解决办法
6416
查看次数

无论如何从变量名获取字符串?

说我上课了

@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)

objective-c nsstring

18
推荐指数
2
解决办法
1万
查看次数

标签 统计

mixins ×1

nsstring ×1

objective-c ×1

objective-c-2.0 ×1

ruby ×1