如何通过它的字符串名称获取类成员对象?

gla*_*ber 2 objective-c

如果我有一个类成员,我可以在我的viewcontroller中说UIImageView:

UIImageView* imageView = self.memberImageView1;
Run Code Online (Sandbox Code Playgroud)

有没有办法可以通过字符串获得此成员?像这样的东西:

UIImageView* imageView =[self.getMember(@"memberImageView1")];
Run Code Online (Sandbox Code Playgroud)

当然我在谈论使用objective-c语法的解决方案,而不是自定义.谢谢.

Joe*_*Joe 6

我建议在反射之前使用键值编码.

UIImageView* imageView =[self valueForKey:@"memberImageView1"];
Run Code Online (Sandbox Code Playgroud)

  • 这样可行,但使用这种松耦合模式非常罕见.当然,可以完成并且有用处,但是您通常希望坚持可以由编译器完全验证的紧密耦合模式. (2认同)