问题标签 [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.
objective-c - 对象数组的内存分配 - 我的理解是否有效?
我有一个关于数组中对象的内存分配的问题。我正在寻找创建一个对象数组,但在编译时,我无法知道我需要多少个对象,因此不想保留比需要更多的内存。
我想做的是根据需要分配内存。我想要这样做的方式是,当用户单击“添加”按钮时,数组会增加一个额外的对象,并分配新对象所需的内存。
在我对Objective C的新手理解中(大约20年前我是一名专业程序员,最近才开始重新编写代码)我想出了以下代码段:
首先,我声明了我的对象:
然后,当用户单击“添加”按钮时,它会运行一个带有分配代码的方法:(注意:变量 i 从值 1 开始,每次单击“添加”按钮时都会增加)
因此,我希望只为实际需要的对象分配内存,而不是立即为所有 1000 个数组对象分配内存。
我是否正确解释了这一点?换句话说,我的解释是否正确,声明中声明的数组元素的数量是数组元素的最大可能数量,而不是当时分配了多少内存?如果这是正确的,那么理论上,声明:
不会比声明更多的内存:
有人可以确认我是否正确理解了这个过程,如果我把这件事弄混了,请赐教。:)
谢谢!
iphone - 静态方法目标 c - 初始化一次
我想分类应该只初始化一次并返回一些第一次计算的值。下面是正确的方法吗?
ios - iOS - 应用程序崩溃 Garbagecollector 的错?
我和我的团队正在开发一个测验应用程序,我们有 1 个视图,我们只需重新加载标签和按钮上的文本。现在,当我们开始测验时,有 2 个循环从数据库中加载问题和答案。在这些循环中,我们初始化在 .h 文件中声明的对象。所以我们要做的是: obj = [[class alloc] initwith:stuff]; 在我们第 6 次调用 2 个循环所在的方法之前,它一直运行良好。有时它在第一个循环中崩溃,有时在第二个循环中崩溃。现在奇怪的是,如果我们在“再次播放”按钮上调用该方法两次,它会在第三次崩溃(方法调用 6 次然后 = 崩溃),所以我们认为它与内存或所以。我们尝试清理项目,在 iPad 和模拟器上运行它。没有效果。错误消息是我们的数组
目前我不能给你一个代码片段,但最简单的方法是在用户按下“再次播放”按钮时简单地重置应用程序。有什么简单的方法可以做到这一点?如果应用程序只是关闭并使用启动画面重新打开,那也很好。
如果你现在不能提出任何建议,我明天会添加代码片段
提前致谢
编辑:SIGABRT 这是错误消息:SoccerQuiz[1563:f803] * 由于未捕获的异常 'NSRangeException' 导致应用程序终止,原因:'* -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array' * First throw call stack : (0x159e022 0x172fcd6 0x158ad88 0x4719 0x3455 0x159fe99 0xe214e 0xe20e6 0x188ade 0x188fa7 0x188266 0x1073c0 0x1075e6 0xeddc4 0xe1634 0x1488ef5 0x1572195 0x14d6ff2 0x14d58da 0x14d4d84 0x14d4c9b 0x14877d8 0x148788a 0xdf626 0x20ed 0x2055) terminate called throwing an exception(lldb)
我的代码:
}
objective-c - Objective C:switch inside loop - 如何避免(潜在的)内存泄漏
我有一个 for 循环,在开始时声明一个 NSObject“值”,然后实际创建“值”中的 switch 语句。那么“值”可以是 NSNumber、NSDate、NSData、NSString 或 nil。这是代码:
现在我不知道如何释放“价值”。这是我尝试过的以及相应的 Xcode 4“分析器”消息:
- 没有释放->“潜在泄漏”
- [value autorelease] 在每个 case 语句中的 alloc/init 之后->“对象发送自动释放太多次”
- [value autorelease] 直接在最后一次使用之前 -> “对象发送 autorelease 太多次”
- [值释放] 最后一次使用后->“此时不由调用者拥有的对象的引用计数递减不正确”
objective-c - Objective C typedef枚举内存管理
处理枚举时是否必须注意内存?这是我声明我的枚举类型的地方。它在另一个 .h 文件中这是我尝试声明变量的地方
在那之后我是否要做类似的事情
objective-c - 在ARC下,[[X alloc] initWith..]和[X xWith...]有什么区别吗?
以 NSMutableArray 为例:
在手动引用计数下,第二行返回了一个自动释放的对象。现在启用 ARC,第二个返回 __autoreleasing 对象而另一个不返回吗?有什么区别,如果有的话?
如果我正在初始化的类是一个已转换为 ARC 的自定义类,其中的转换从初始化程序中删除了自动释放消息:
b1 和 b2 之间有什么区别,与 a1 和 a2 的创建方式有什么不同吗?
ios - NSMutable Array won't alloc, remains nil
A XML parser is trying to alloc its delegate's NSMutable array called masterCodeList. From the following code, you'll see that this fails. (I am a total newbie.)
I get the the init of the mutable array did NOT work
message every time. I am importing the dataController header.
I am getting no other error message, the parser is parsing fine and the app is running smoothly without content.
Thanks in advance.
objective-c - unsigned char alloc 和免费问题
我对一件奇怪的事情感到困惑......我有一个 unsigned char 数组......我使用 calloc 分配它并在其中记录一些字节数据......但是当我释放这个 unsigned char 并再次分配它时,我看到它在内存中保留了上次分配的相同地址。我明白为什么....但是我不明白为什么我第二次尝试在那里写入的数据没有被写入......第一次写入的数据被写入......有人可以解释一下吗? ???
unsigned char *rawData = (unsigned char*) calloc(height * width * 4, sizeof(unsigned char));
这就是我分配它的方式....实际上我的问题是由于这种分配,每2秒发生一次我有内存泄漏...但是当我尝试释放分配的内存扇区时,会发生上述情况... .:(
请如果有人可以帮助我......我会很高兴......这是代码......
在这段代码中没有我释放(rawData)的部分,因为我无法在这个方法中释放它,所以我尝试全局定义 rawData 并在调用这个方法后释放它......但没有什么有趣的......
请如果有人可以帮助我......我会很高兴......
iphone - 分配了太多内存
我尝试做一个应用程序,但内存分配出现很多崩溃,然后我尝试减少所有代码并清理它,现在我得到了这个
为什么我得到:
在第 101 行分配并存储到“liveello”中的对象的潜在泄漏
}
objective-c - 将新的目标 C 对象分配给保留属性?
很抱歉问了一个完全基本的问题,但如果我有一个保留的综合属性。
会导致内存泄漏吗?
所以我认为我需要做的事情是否正确
为了平衡?因为这看起来很愚蠢。