注册 登录
主题 : 怎么销毁用代码创建的button啊
级别: 新手上路
状态: 连续签到 - [4天]
UID: 657907
精华: 0
发帖: 15
可可豆: 62 CB
威望: 55 点
在线时间: 16(时)
注册时间: 2018-07-11
最后登录: 2018-08-09
0 楼:  发表于: 2018-07-12 17:00    发自: Web Page
来源于 一般提问 分类

怎么销毁用代码创建的button啊   

- (void) createMyButton{
// UIButton *button = [[UIButton alloc] init];
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];

? ? [button setTitle:@"click me!" forState:UIControlStateNormal];
? ? [button setTitle:@"Hight light!" forState:UIControlStateHighlighted];

? ? [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
? ? [button setTitleColor:[UIColor greenColor] forState:UIControlStateHighlighted];

UIImage *imaNormal = [UIImage imageNamed:@"big"];
? ? UIImage *imaHighlighted? = [UIImage imageNamed:@"small"];
? ? [button setBackgroundImage:imaNormal forState:UIControlStateNormal];
? ? [button setBackgroundImage:imaHighlighted forState:UIControlStateHighlighted];

? ? button.frame = CGRectMake(200, 300, 50, 50);

? ? [button addTarget:self action:@selector(clickEvent) forControlEvents:UIControlEventTouchDown];

? ? [self.view addSubview:button];

? ? p = button;
CREATEorNOT = 1;
}




如图,指针p是全局变量我用来测试的,CREATEorNOT也是全局变量,用来标记这个button是否生成了的

级别: 精灵王

状态: 连续签到 - [334天]
UID: 566298
精华: 0
发帖: 756
可可豆: 2882 CB
威望: 2184 点
在线时间: 1575(时)
注册时间: 2016-06-01
最后登录: 2018-09-21
1 楼:  发表于: 2018-07-12 17:13    发自: Web Page
你怎么测试的啊,通过p来看?
全局变量一直指着button,button怎么能释放呢
级别: 新手上路
状态: 连续签到 - [4天]
UID: 657907
精华: 0
发帖: 15
可可豆: 62 CB
威望: 55 点
在线时间: 16(时)
注册时间: 2018-07-11
最后登录: 2018-08-09
2 楼:  发表于: 2018-07-12 17:15    发自: Web Page
回 1楼(雨秋爱吃鱼) 的帖子
我开头以为运行完了自动销毁,给个指针看能不能访问button,结果是还可以的,说明没销毁嘛0-0


级别: 精灵王

状态: 连续签到 - [334天]
UID: 566298
精华: 0
发帖: 756
可可豆: 2882 CB
威望: 2184 点
在线时间: 1575(时)
注册时间: 2016-06-01
最后登录: 2018-09-21
3 楼:  发表于: 2018-07-12 17:32    发自: Web Page
回 2楼(广大陈奕迅) 的帖子
你看下引用计数
级别: 新手上路
UID: 572904
精华: 0
发帖: 24
可可豆: 33 CB
威望: 33 点
在线时间: 158(时)
注册时间: 2016-07-12
最后登录: 2018-09-07
4 楼:  发表于: 2018-07-12 17:36    发自: Web Page
被self.view引用了当然不释放啊
级别: 新手上路
状态: 连续签到 - [4天]
UID: 657907
精华: 0
发帖: 15
可可豆: 62 CB
威望: 55 点
在线时间: 16(时)
注册时间: 2018-07-11
最后登录: 2018-08-09
5 楼:  发表于: 2018-07-12 17:50    发自: Web Page
回 3楼(雨秋爱吃鱼) 的帖子
我还想取消ARC来着,QAQ,但是感觉这样会炒鸡麻烦,直到群里大佬告诉我
removeFromSuperview
级别: 新手上路
状态: 连续签到 - [4天]
UID: 657907
精华: 0
发帖: 15
可可豆: 62 CB
威望: 55 点
在线时间: 16(时)
注册时间: 2018-07-11
最后登录: 2018-08-09
6 楼:  发表于: 2018-07-12 17:51    发自: Web Page
回 4楼(dearxiaomu) 的帖子
在哪里引用啊,是因为在viewController类里创建的吗
级别: 新手上路
UID: 572904
精华: 0
发帖: 24
可可豆: 33 CB
威望: 33 点
在线时间: 158(时)
注册时间: 2016-07-12
最后登录: 2018-09-07
7 楼:  发表于: 2018-07-12 18:14    发自: Web Page
button被添加到self.view上,self.view就持有button对象,self.view被self持有。如果[button removeFromSuperview],self.view就不再持有butto,button(如果没有其他强引用)就被回收了。
级别: 新手上路
状态: 连续签到 - [4天]
UID: 657907
精华: 0
发帖: 15
可可豆: 62 CB
威望: 55 点
在线时间: 16(时)
注册时间: 2018-07-11
最后登录: 2018-08-09
8 楼:  发表于: 2018-07-12 20:10    发自: Web Page
回 7楼(dearxiaomu) 的帖子
被添加到self.view的这个操作是后台完成吗?额,就是说self.view就是那个viewController,我所有的操作基于在这个类当中?
级别: 精灵王
UID: 58239
精华: 0
发帖: 1078
可可豆: 2166 CB
威望: 2160 点
在线时间: 2888(时)
注册时间: 2011-03-19
最后登录: 2018-09-21
9 楼:  发表于: 2018-07-13 09:40    发自: Web Page
这届的iOS程序员水平太差了,理解不了指针你就别玩OC,玩Swift算了

本站内容均为本站转发,已尽可能注明出处。因未能核实来源或转发内容图片有权利瑕疵的,请及时联系本站,本站会第一时间进行修改或删除。 QQ : 3442093904

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部