自定义tableviewcell中,重写model的set方法,报exc_bad_access

[复制链接]
139 9
     - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {    ListCell *cell = [ListCell cellWithTableView:tableView];        cell.frame = self.modelArray[indexPath.section];        return cell;}#import @class ListCellFrame ;@interface ListCell : UITableViewCell@property (nonatomic , strong) ListCellFrame *frame ;+(instancetype)cellWithTableView:(UITableView *)tableview ;@end-(void)setFrame:(ListCellFrame *)frame{    _frame = frame ;    [self settingData];    [self settingFrame];}

在上面的set方法那里报错,exc_bad_access..

//===========已经解决了,多谢大家==============//
问题出在属性的名字上面。。。。
@property (nonatomic , strong) ListCellFrame *frame ;
frame。。。frame。。。。frame。。。。
然后调用set方法时,调用的是重写cell的frame的方法,所以会报错。。[ 此帖被LOVE当午在2017-02-08 10:42重新编辑 ]

举报 使用道具

回复

9 个评论

siyt  新手上路  发表于 2018-5-16 16:53:36  | 显示全部楼层
如果楼主是想设置cell的高度,应该在- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;这个代理里面设置

举报 使用道具

回复
erguotou  新手上路  发表于 2018-5-16 17:13:13  | 显示全部楼层
大神别打脸了。。。好疼。。。求放过。。。

举报 使用道具

回复
djl8173  新手上路  发表于 2018-5-16 17:49:35  | 显示全部楼层
cell本身就有个frame属性,你自己要增加属性时,必须不能与系统的frame同名,可以改成cellFrame,或者modelFrame之类的

举报 使用道具

回复
tantnt  新手上路  发表于 2018-5-16 18:10:00  | 显示全部楼层
看看这个SDAutoLayout的Demo例子,各种自适应布局

举报 使用道具

回复
shiningpig  新手上路  发表于 2018-5-16 19:35:50  | 显示全部楼层
不是要设置高度,是想做一个根据内容自适应高度的cell。。结果就报上面的错,看了半天一只没搞明白为什么回出现这个错误。。只能坐等大神来解惑了。。

举报 使用道具

回复
laughsea  新手上路  发表于 2018-5-16 20:33:29  | 显示全部楼层
打了断点,程序走到创建cell那一行的时候,就执行了set方法,可是这个时候根本就没有给frame赋值。。。

举报 使用道具

回复
wiindowsxp456  新手上路  发表于 2018-5-16 21:06:00  | 显示全部楼层
好深奥的代码哦。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复
okla  新手上路  发表于 2018-5-16 22:43:34  | 显示全部楼层
引用
引用第3楼LOVE当午于2017-02-08 09:54发表的 回 2楼(倔。犟) 的帖子 :
    不是要设置高度,是想做一个根据内容自适应高度的cell。。结果就报上面的错,看了半天一只没搞明白为什么回出现这个错误。。只能坐等大神来解惑了。。 [url=http://www.cocoachina.com/bbs/job.php?action=topost&tid=1712747&pid=1719792][/url]




那还是设置高度呀.... cell呈现出来的高度就是通过那个代理返回的呀。你应该把那个计算高度的放在返回高度的那个delegate里

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复
8906772  新手上路  发表于 2018-5-17 00:34:38  | 显示全部楼层
&#160;&#160;&#160;&#160; - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {&#160;&#160;&#160;&#160;ListCell *cell = [ListCell cellWithTableView:tableView];&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cell.frame = self.modelArray[indexPath.section];&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return cell;}#import <UIKit/UIKit.h>@class ListCellFrame ;@interface ListCell : UITableViewCell@property (nonatomic , strong) ListCellFrame *frame ;+(instancetype)cellWithTableView:(UITableView *)tableview ;@end-(void)setFrame:(ListCellFrame *)frame{&#160;&#160;&#160;&#160;_frame = frame ;&#160;&#160;&#160;&#160;[self settingData];&#160;&#160;&#160;&#160;[self settingFrame];}

在上面的set方法那里报错,exc_bad_access..

//===========已经解决了,多谢大家==============//
问题出在属性的名字上面。。。。
@property (nonatomic , strong) ListCellFrame *frame ;
frame。。。frame。。。。frame。。。。
然后调用set方法时,调用的是重写cell的frame的方法,所以会报错。。[ 此帖被LOVE当午在2017-02-08 10:42重新编辑 ]

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表