【问题标题】:Add UIImageView objects to an array (Objective C)将 UIImageView 对象添加到数组(目标 C)
【发布时间】:2014-02-20 12:35:46
【问题描述】:

我已经阅读了有关 UIImageView 对象数组的其他线程,但我无法让它工作。请注意,我对 Objective-c 完全陌生。

我在 .h 文件中声明了一些 UIImageView 对象,如下所示:

@property (weak, nonatomic) IBOutlet UIImageView *obj1;

我还在同一个地方声明了一个数组:

@property (weak, nonatomic) IBOutlet NSArray *arr;

在 viewDidLoad 方法中,我想将 obj1 添加到 arr。我该怎么做?

我已经测试过初始化 arr 并向其添加对象,但它不起作用。

_arr = [[NSMutableArray alloc] init];

[_arr addObjects: obj1];

汉克

【问题讨论】:

  • IBOutlet 表示您正在将该对象连接到 Interface Builder(因此是 IB)。数组不是在那里连接的东西。您必须对它进行不同的定义才能将其连接起来。
  • 如果他们有帮助,您应该接受其中一个答案,否则下次没有人会帮助您:)
  • 对不起。还是个新手。现在:)

标签: ios objective-c arrays uiimageview


【解决方案1】:

确保在调试器中_arr 不是nil。您需要将其声明为

@property (strong, nonatomic) NSMutableArray *arr;

由于 arr 不是视图控制器上的 ui 控件,因此您无需添加 IBOutlet

另外,你的视图控制器拥有它,所以它应该是strong 而不是weak

你也应该使用NSMutableArray而不是NSArray,因为只有第一个可以用于添加对象,这就是你对这个对象类型的编译器所说的

【讨论】:

    【解决方案2】:

    改变

    @property (weak, nonatomic) IBOutlet NSArray *arr;
    

    @property (strong, nonatomic) NSMutableArray *arr;
    

    【讨论】:

      【解决方案3】:

      如果你想在你的数组中添加 UIImageView 对象,你可以这样做。但问题是,如果你想在初始化之后在 NSArrar 中添加对象,那么你必须声明 NSMutableArray,因为你可以在其中添加和删除对象,而不是addObject 方法可以工作。

      他们也不需要将 NSMutableArray 的 NSArray 声明为 IBOutlet。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-12
        • 2012-03-11
        • 1970-01-01
        • 2018-03-14
        • 2022-01-13
        • 2018-09-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多