【问题标题】:How to add objects to IBOutletCollection?如何将对象添加到 IBOutletCollection?
【发布时间】:2012-01-09 16:57:58
【问题描述】:

我在课堂上声明了 NSArray

NSArray             *labelsArray;

我把它变成了一个属性

@property (nonatomic,retain) IBOutletCollection(UILabel) NSArray *labelsArray;

我将它连接到 IB 中的四个 UILabel。我分配了数组。当我这样做时

NSLog(@"labelsArray.count %i",[labelsArray count]);

它告诉我labelsArray 的计数是0。我应该怎么做才能将这些标签实际添加到数组中?

【问题讨论】:

  • “我分配了数组”——这是什么意思?
  • 我的意思是我做了 labelsArray = [[NSArray alloc] init]

标签: iphone xcode nsarray uilabel iboutlet


【解决方案1】:

我分配了数组。

可能是在加载 NIB 文件时自动为您实例化数组,并且重新分配它会创建数组的新(空)版本。尝试不分配它。还要确保在加载 IB 元素时 NSLog 数组在 viewDidLoad 中。

【讨论】:

  • 是的,没有分配数组的计数是4。再次非常感谢您
  • 再问一个问题:我应该在 dealloc 中释放数组还是没有必要?
  • 你应该通过 viewDidUnload 中的访问器 (self.labelsArray = nil;) 将它设置为 nil 并在 dealloc 中释放它。
  • 你确定吗?如果我释放阵列我的应用程序崩溃。如果我不这样做,一切正常
  • 显然你也应该在 dealloc 中将它们设置为 nil。
【解决方案2】:

你在哪里调用 NSLog 语句?在调用 viewDidLoad 之前,该数组不会被实例化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 2017-05-03
    • 1970-01-01
    相关资源
    最近更新 更多