objective-c - 如何使用变量引用对象 ID?

标签 objective-c

<分区>

这是我的代码,出现了 48 次(日历中的每个按钮一次)。

calenderButton *a1 = [calenderButton buttonWithType:UIButtonTypeCustom];
[a1 makeFrame:CGRectMake(75, 50, 70, 70) number:1 color:[UIColor orangeColor]];
[self.view addSubview:a1];

我想做的是将其放入“for 循环”中,将“a1”更改为“a2”、“a3”等,以减少代码量。我想我可以将它减少到 6 个“for 循环”。

如何让“a1”成为一个变量,然后我不仅可以在上面的代码中引用它,还可以在“for 循环”中引用它? (for 循环是这样的:)

for(int i = 0, j=75; i < 7; i++, j+=75);

我知道我必须将“a”与整数“i”连接起来,但我该如何将其放入消息中?

最佳答案

你可以把你的按钮放到一个数组中,像这样:

在你的header中声明一个实例变量NSMutableArray *allButtons,然后...

allButtons = [NSMutableArray array];
for(int i = 0, j=75; i < 7; i++, j+=75) {
    calenderButton *cb= [calenderButton buttonWithType:UIButtonTypeCustom];
    // Configure the button here...
    // use values of i and j to call CGRectMake, or as you see fit
    [allButtons addObject:cb];
}

现在您所有的按钮都在一个数组中。您可以通过索引或您可能需要的任何其他方式访问它们,例如具有快速枚举循环。

关于objective-c - 如何使用变量引用对象 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9893189/

相关文章:

iphone - UIActivityIndi​​catorView 显示在屏幕中央

java - Java Vector 的 Objective-C 等价物?

ios - 将标题添加到 CSV 文件

iphone - 以编程方式更改 tabBarController 的选定选项卡

objective-c - NSTextView,附加文本和平滑滚动

ios - 将数据从 Objective-C Viewcontroller 传递到 Swift ViewController

objective-c - 关闭 NSWindow 并释放内存,但在单击按钮时重新打开它

ios - NSMutableRequest 对象主体的分配数据未被释放

objective-c - addingPercentEncoding 在 Swift 中的工作方式不同

iphone - 执行FetchRequest :error: returns autoreleased array or with retain count = 1