如何在 Objective-C 中运行时引用实例属性

发布于 2024-10-26 22:56:16 字数 662 浏览 4 评论 0原文

Flash Actionscript 开发人员可以使用一个技巧来在运行时引用实例属性。我想知道 Objective-C 中是否存在类似的东西

在 actionscript 中我们可以做:

var thisObject;
for (var i=0; i<10; i++) {
   thisObject = this["myInstanceProperty"+i];
   thisObject.doSomething();
}

我认为 Objective-C 中会有类似的方法,但我找不到任何地方提到的任何内容。我正在寻找类似以下内容的内容:

for (int i=0; i<10; i++) {
  NSString *buttonName = [NSString stringWithFormat:@"button_%i", i];
  id *thisButton = [self instancePropertyWithStringName:buttonName];
  thisButton.label = @"button %i";
}

你能明白我的意思吗?我有一个将视图链接到 IBOutlet 的 xib,我想在 for 循环中引用这些 IBOutlet,这样我就可以在运行时动态地向它们添加属性。

有什么想法吗?

There is a trick Flash Actionscript developers can do to refer to instance properties at runtime. I was wondering if anything similar existed in Objective-C

In actionscript we can do:

var thisObject;
for (var i=0; i<10; i++) {
   thisObject = this["myInstanceProperty"+i];
   thisObject.doSomething();
}

I thought there would be a method similar to this in Objective-C, but I can't find anything mentioned anywhere. I'm looking for something along the lines of:

for (int i=0; i<10; i++) {
  NSString *buttonName = [NSString stringWithFormat:@"button_%i", i];
  id *thisButton = [self instancePropertyWithStringName:buttonName];
  thisButton.label = @"button %i";
}

Can you see what I'm getting at? I have a xib linking views to IBOutlets, and I'd like to refer to those IBOutlets from within a for loop, so I can add properties to them dynamically at runtime.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

诗酒趁年少 2024-11-02 22:56:16

如果 self 对象符合 NSKeyValueCoding ,则可以使用以下内容 - 默认情况下它对其实例变量和属性执行此操作。

NSButton *button = [self valueForKey:buttonName];

You can use the following if the self object conforms to NSKeyValueCoding -- which it does by default for its instance variables and properties.

NSButton *button = [self valueForKey:buttonName];
烟雨扶苏 2024-11-02 22:56:16

听起来您正在寻找 Key -值编码指南

It sounds like you're looking for a Key-Value Coding Guide.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文