objective-c - PHP 的 "Variable Variables"的 Objective C 等价物

标签 objective-c

<分区>

在 PHP 和 JavaScript 中,您可以通过使用另一个变量作为其名称的一部分来动态使用变量。我不想使用数组作为解决方案的一部分。这可以在 Objective C 中实现吗?我想做这样的事情:

for (int i=1; i<6; i++) {
        if([appRecord.answer(i) length] != 0){
            self.textView.answer(i)ViewSingle.text = appRecord.answer(i);
        }
}

最佳答案

简短回答:否。

长答案:有点。

  1. 您可以使用一个数组,将您的变量存储在其中,然后对其进行索引。
  2. 与 #1 一样,如果您的对象实际上是 UI 元素并且您不想要一大堆 IBOutlets,那么请改用 IBOutletCollection
  3. 您可以使用字典,将变量存储为值,然后按键查找它们。
  4. 您可以将所有变量声明为 @property,然后使用 [self valueForKey:] 按名称查找它们。
  5. 您可以将 ivar 的名称构建为字符串,然后使用类似于 object_getInstanceVariable() 的名称。直接检索它的值(这与#3 类似,只是您不必将其声明为 @property)。这过于复杂,而且通常比您实际需要的锤子大得多。
  6. 如果您正在处理 View ,您可以为每个 View 分配一个唯一的标签,然后通过[superview viewWithTag:aTag] 检索它。我不建议使用这种方法。

编辑:请注意,这仅适用于实例变量。这不适用于全局/静态变量。

关于objective-c - PHP 的 "Variable Variables"的 Objective C 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2283374/

相关文章:

iphone - 如何在 Objective-C 或 cocos2d 中实现 powerUps 和其他游戏改变对象

ios - 在另一个 View Controller 中显示 View Controller 时如何防止闪烁

ios - 如何在 viewWillAppear 中将 UIScrollView 滚动到底部,当使用自动布局时,没有视觉动画

objective-c - 沙盒应用程序,在没有用户交互的情况下保存文件的位置

ios - 如何在UITextField中保存用户输入?

ios - 在 UITableView 中对齐文本

iphone - 在 ios 中使用 Graph Api 在 friend 墙上发帖不起作用

objective-c - 从 NSTimer 选择器访问实例变量

iphone - 导航栏下方的框架大小?

iphone - 如果没有滚动距离,如何阻止 UIScrollView 弹跳?