问题可能看起来很愚蠢,只是在目标C的一些基础知识中遇到问题。我知道目标C只支持按值传递但是我的要求需要传递地址。我有一个UIButton成员变量(iVar),我将它们传递给一个函数,并尝试使用下面的参数在函数内部分配init ...
功能调用:
[self create_button : ivar_btn];
定义:
- (void) create_button : (UIButton*) button
{
// Create button
button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"00/00/0000" forState:UIControlStateNormal];
[self.add_scroll_view addSubview:button];
}
因此,如果没有在目标C中通过引用,我该如何处理这种情况?
如果我理解错误,请纠正我。
注意:“创建”按钮是一个常用代码,我一直在使用此按钮在运行时根据需要创建按钮。
感谢名单
答案 0 :(得分:2)
这是无用的实现,我还没有尝试过。
UIButton *ivar_btn = nil;
[self create_button : &ivar_btn];
- (void) create_button : (UIButton**) button
{
// Create button
*button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[*button setTitle:@"00/00/0000" forState:UIControlStateNormal];
[self.add_scroll_view addSubview:*button];
}
答案 1 :(得分:0)
我尝试了你的代码,它对我来说很好。只是你错过了一件事。设置框架。
以下是我修改代码的方法,对我来说很好。希望它也适合你。
UIButton *btn = [[UIButton alloc] init];
[self create_button:btn];
和功能/方法:
- (void) create_button : (UIButton*) button
{
// Create button
button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"00/00/0000" forState:UIControlStateNormal];
[button setFrame:CGRectMake(0, 0, 100,100)];
[self.view addSubview:button];
}
工作正常
答案 2 :(得分:0)
试试这个......
- (void) create_button : (UIButton*) button
{
// Create button
UIButton *tmpButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
tmpButton = button;
[self.add_scroll_view addSubview:tmpButton];
}