将保留对象分配给弱属性

YYfim

我正在使用Xcode 6,并且已经使用aUITableView和a创建了我的应用程序custom Cell这是我的custom cell

@interface SuggestingTableViewCell : UITableViewCell

@property (nonatomic, weak) IBOutlet SuggestedSeriesView *seriesOne;
@property (nonatomic, weak) IBOutlet SuggestedSeriesView *seriesTwo;
@property (nonatomic, weak) IBOutlet SuggestedSeriesView *seriesThree;
@property (nonatomic, weak) IBOutlet SuggestedSeriesView *seriesFour;

@end

如您所见,我有四个IBOutetsSuggestedSeriesView,这是的子类UIView在这些TableView DataSource方法中,我创建了这些方法,SuggestedSeriesView并将其分配为:

cellIdentifier = suggestionCell;
SuggestingTableViewCell *suggesting = (SuggestingTableViewCell *)[tableView dequeueReusableCellWithIdentifier:suggestionCell];
Series *ser1 = series[0];
suggesting.seriesOne = [[SuggestedSeriesView alloc] initWithFrame:suggesting.seriesOne.bounds
                                                    andSeriesData:@{JV_SERIES_IMAGE_URL : ser1.imageURL,
                                                                    JV_SERIES_TITLE : ser1.title}];
Series *ser2 = series[1];
suggesting.seriesTwo = [[SuggestedSeriesView alloc] initWithFrame:suggesting.seriesTwo.bounds
                                                    andSeriesData:@{JV_SERIES_IMAGE_URL : ser2.imageURL,
                                                                    JV_SERIES_TITLE : ser2.title}];
Series *ser3 = series[2];
suggesting.seriesThree = [[SuggestedSeriesView alloc] initWithFrame:suggesting.seriesThree.bounds
                                                      andSeriesData:@{JV_SERIES_IMAGE_URL : ser3.imageURL,
                                                                      JV_SERIES_TITLE : ser3.title}];
Series *ser4 = series[3];

suggesting.seriesFour = [[SuggestedSeriesView alloc] initWithFrame:suggesting.seriesFour.bounds
                                                     andSeriesData:@{JV_SERIES_IMAGE_URL : ser4.imageURL,
                                                                     JV_SERIES_TITLE : ser4.title}];

编译器给我警告:

将保留对象分配给弱属性;对象将在分配后释放

为什么会发生这种情况,因为它没有SuggestedSeriesView将保留获取保留下来cellIBOutlet

谢谢您的帮助。

很少

发生这种情况是因为您的属性很弱,这意味着它们将不会保留任何内容,它们只能引用内容。

IBOutlet等于void,这只是xcode告诉它“可以在接口生成器上连接”的提示。

界面构建器的属性类型为弱且IBOutlet的原因是,它们由情节提要的View控制器的视图本身保留,因此,如果您在界面构建器中创建视图控制器,然后添加视图,然后将其链接在代码中,您的属性不必很强,因为其中一个视图已经保留了该属性。

您应该将这些属性更改为

@property (nonatomic, strong) SuggestedSeriesView *seriesOne;
@property (nonatomic, strong) SuggestedSeriesView *seriesTwo;
@property (nonatomic, strong) SuggestedSeriesView *seriesThree;
@property (nonatomic, strong) SuggestedSeriesView *seriesFour;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

何时释放保留的对象(分配给弱变量对象的对象)

来自分类Dev

操纵对象的属性:将方法分配给属性

来自分类Dev

将Json对象属性分配给模型

来自分类Dev

使用C ++将属性分配给任意R对象?

来自分类Dev

将变量内容分配给对象属性名称

来自分类Dev

使用解构将新属性分配给对象

来自分类Dev

打包袋地图:将属性分配给对象

来自分类Dev

通过ID将值分配给对象属性

来自分类Dev

无法将值分配给对象的属性

来自分类Dev

javascript,将 requestAnimationFrame 和 cancelAnimationFrame 分配给对象的属性

来自分类Dev

将属性分配给功能

来自分类Dev

将值分配给Swift属性

来自分类Dev

将NSNotFound分配给属性?

来自分类Dev

将属性分配给功能

来自分类Dev

将范围分配给类属性

来自分类Dev

Rails将属性分配给实例

来自分类Dev

将功能分配给Javascript对象

来自分类Dev

将密钥分配给JSON对象

来自分类Dev

将字典分配给类对象

来自分类Dev

将数组分配给对象?

来自分类Dev

将数组分配给对象?

来自分类Dev

将Image对象分配给变量

来自分类Dev

将数组分配给对象

来自分类Dev

将保留对象分配给__unsafe_unretained变量,但是为什么它不崩溃?

来自分类Dev

如何将数组中对象的属性分配给多个类属性?

来自分类Dev

将对象分配给属性或分配给属性之间有什么区别?

来自分类Dev

将值分配给数组,不保留值?

来自分类Dev

手动将现有对象分配给Entity Framework导航属性

来自分类Dev

将新属性分配给已冻结原型的空对象