ios - UIView 的 initWithFrame

标签 ios objective-c uiview

我在我的 UIView 中声明了一个属性,如下所示: @property (nonatomic, strong) NSMutableArray *finishedLines;

我初始化使用:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        //[self setFinishedLines:[[NSMutableArray alloc] init]];
        [self setBackgroundColor:[UIColor grayColor]];

如果我取消注释 [self setFinishedLines..] 会有什么区别?

我声明属性的时候不是已经初始化了吗?

如果我取消注释但我不明白其中的逻辑,我会得到不同的结果。

最佳答案

objective-c 中的属性不会自动初始化。

您必须在构造函数中分配和初始化它(或使用 new,它基本上是 alloc 和 init 的快捷方式)。

   self.finishedLines = [[NSMutableArray alloc] init]];

关于ios - UIView 的 initWithFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33629770/

相关文章:

ios - 如何通过单击键盘上的返回按钮来浏览 SwiftUI TextFields?

ios - 无法弄清楚项目如何引用 .pch 文件

ios - 使用 iOS 将文本复制到剪贴板

ios - UICollisionBehavior的问题

ios - 如何在 Swift 中定义闭包数组?

ios - 分享后如何从 Instagram 应用程序重定向到我的 iOS 应用程序

objective-c - AnimationForKey 上的 EXC_BAD_ACCESS :

objective-c - 碰撞后如何恢复b2Body状态?

ios - 在单元格中,如何定位和调整从带有自动布局的 Nib 创建的 View 的大小?

objective-c - 如何以编程方式在 UIView 上显示图片?