【问题标题】:How to declare a C array property in objective-c [duplicate]如何在objective-c中声明C数组属性[重复]
【发布时间】:2014-03-21 10:12:43
【问题描述】:

如何声明一个 C 整数数组作为 Objective-c 类的属性?

【问题讨论】:

标签: ios iphone objective-c


【解决方案1】:
@property (nonatomic, assign) int *array;
...
// somewhere in your code 
    int *gg = malloc(10 * sizeof(int));
    gg[1] = 1;
    gg[0] = 2;
    self.array = gg;

更新:

现在这是基于堆的数组,以确保它不会被释放。
但不要忘记在 dealloc free(self.array) 中释放它

【讨论】:

  • 正是我想要达到的目标。其他类似问题中最干净的答案
  • 太棒了:)@NicolasManzini
  • 你不能这样做。当您离开声明gg 的范围时,您的array 属性将包含指向已释放内存部分的指针。最好的情况是你会得到垃圾而不是你想要的值。在int *array 的情况下,必须使用mallocnew 在堆上分配数组。
  • @creker,是的,谢谢。更新了我的答案
  • 有趣的是我现在正在阅读这个堆/堆栈问题! :) 我可以通过 gg[] = {0} 用 0 填充它?
猜你喜欢
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-06
  • 1970-01-01
  • 1970-01-01
  • 2012-10-15
  • 1970-01-01
相关资源
最近更新 更多