问题标签 [alloc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
17611 浏览

objective-c - alloc 和 allocWithZone: 有什么区别?

论坛讨论来看,最大的区别似乎是性能因素,allocWithZone: 将从特定内存区域分配内存,从而降低交换成本。

在实践中,几乎没有机会使用 allocWithZone: ,任何人都可以举一个简单的例子来说明什么情况下使用 allocWithZone: ?

谢谢,

0 投票
4 回答
970 浏览

iphone - 需要帮助了解 iOS/Objective-C 编程中的特定分配/释放习惯用法

我是一名经验丰富的 C/C++ 程序员,开始学习 Objective-C 开发。我目前正在查看 UICatalog 示例,并遇到了另一个我见过几个地方但从未理解过的成语实例。

代码:

AFAIK,这分配并初始化一个 ButtonsViewController,为 ButtonsViewController 创建一个 NSDictionary,并将字典添加到一个名为 menuList 的 NSMutableArray(这是上面代码所在的 MainViewController 的成员变量),然后释放它刚刚创建的 buttonViewController。稍后,MainViewController 在必要时使用字典条目将视图切换到buttonsViewController。

我的问题是:为什么buttonViewController 在这段代码之后仍然有效?它被分配和释放,之间没有“保留”。向 NSDictionary 或 NSMutableArray 添加内容是否具有隐式“保留”?如果是这样,我应该能够以某种方式弄清楚这一点,还是只是你必须阅读和记住的那些事情之一?

0 投票
2 回答
921 浏览

objective-c - -dealloc 方法在拥有数组 dealloc'd 时不被调用...应该吗?

这是 Foundation 应用程序中的两段 Objective-C 代码。这段代码在一个函数中:

在我的 TheShape 类中,我有这个dealloc覆盖方法:

尽管我的程序以其他方式工作,但它并没有按我期望的方式工作。发送消息时[arrayOfObjects release],我希望在日志中看到“TheShape dealloc...”字符串。它没有。

Q1:为什么不呢?

所以我挖掘了一下并简化了事情。如果我做这样更简单的事情:

调试消息仍然没有出现在日志中。

Q2:为什么不呢?

但如果我这样做:

调试消息确实出现在日志中。如果我将第一个示例中的 alloc/init 也更改为 ,调试消息也会出现在日志中new

Q3:为什么?

显然,我在 alloc/init/release 周期(Q 的 1 和 2)以及假定的newalloc/init(Q3)的等效性中遗漏了一些概念性的东西。任何人都可以向我指出一个教程,它可以像我一样为难以思考的人解释更多的东西吗?

谢谢,

账单

0 投票
2 回答
865 浏览

c - C将字符串保存到二维数组

这个想法是从标准输入读取字符串,直到达到 EOF(以这种格式"string - string")。然后,将字符串分成两个字符串并将它们保存到二维数组中。该数组是动态分配的,最初有 2 行和 20 列,但我想每次添加下一个字符串时添加 2 行(函数expandmat())。这是我的代码:

另外,如果这段代码中有一些没有任何意义的东西,你能告诉我如何解决它吗?

我知道这似乎是一项微不足道的任务,但它一直让我发疯。

谢谢你的帮助。

0 投票
4 回答
434 浏览

iphone - 我怎样才能分配和初始化一个对象,所以当 ViewDidLoad 加载时它不应该再次重新加载?

我已经在ViewControllerViewDidLoad中初始化了一个委托对象,但是当我再次加载它时,它再次初始化了该值。

我在该委托对象中保存了某种数组,我想使用getObjectand访问它setObject。我应该怎么做才能使委托对象不会在每次ViewDidLoad调用时都重新初始化?

0 投票
1 回答
1208 浏览

objective-c - 初始化自定义类的问题(UIImageView 可能不响应“-alloc”)

我对这条线有疑问

问题是带有警告的“未声明的球”:“UIImageView”可能无法响应“-alloc”和警告:未找到“-initWithPNGFileName:andGame:andCGRect:”方法

这是方法:

我不明白为什么无法分配 UIImageView 以及为什么我没有找到 '-initWithPNGFileName:andGame:andCGRect:' 方法

谢谢

0 投票
3 回答
1059 浏览

objective-c - NSString 分配与否!

我从 scrollViewDidScroll 方法运行这段代码(所以它在你滚动时运行!):

效果很好,但是它会影响滚动的性能(导致它在减速时颤抖)

我的问题是,我是否需要继续使用 alloc 和 release 或者有没有办法在没有它的情况下使用 initWithFormat 获取一些数字?

0 投票
0 回答
232 浏览

objective-c - 在这种情况下我必须使用 NSInteger 以及何时使用简单的 int?

可能重复:
何时使用 NSInteger 与 int?

我真的很困惑,什么时候必须使用 NSInteger 以及什么时候使用 int?当我在论坛中查看时,我知道 NSInteger 会进行分配。真的吗?与此相关的任何事情都将是可观的。谢谢

0 投票
2 回答
703 浏览

objective-c - 如果 initWithX 失败,alloc 会发生什么?

MyClass* obj = [[MyClass alloc] initWithX:X]用 Objective-C编写是一种常见的做法。initWithX通常定义为

我的问题是:如果初始化失败怎么办?我不想抛出异常,但是,如何指示错误?如果我 return nil,调用者将无法释放指针。

0 投票
3 回答
1396 浏览

iphone - 我可以返回分配的对象并将其释放到函数之外吗?

嗨,我刚刚用 NSString 写了一个简单的例子。在我的真实程序中,我使用了一个自定义的 UIView 类,而不是 NSString。

allocString 创建一个 NSString 实例,它的保留计数为 1。没有自动释放,它只返回一个实例。

在 viewDidLoad 方法中,变量 name 只是指向 allocString 方法返回的对象,所以实例的保留计数仍然是 1。

因此,[name release] 减少了它的保留计数。

这是正确的吗?还是我必须在 allocString 方法中自动释放它?谢谢!