alloc相关内容

Objective-C/iPhone 开发中的延迟实例化

快速问题...好吧,我知道在Objective-C中所有属性都以nil开始,并且向nil发送消息没有任何作用,因此您必须使用[[Class alloc] init]进行初始化;在向新创建的属性发送消息之前.但是,如果我不向该属性发送消息,或者我使用 self.property = something 设置该属性呢?在这些情况下我是否也需要 alloc init ?另外,UI 属性是否也从 nil ..

分配和释放二维数组

我制作了2d array(matrix)+ alloc和free函数来管理内存,但是它不能很好地工作,valgrind打印很多错误和内存丢失的信息. Alloc:参数s表示矩阵的大小 int ** alloc(int s){int **矩阵;我矩阵=(int **)malloc(s * sizeof(int *));对于(i = 0; i ..
发布时间:2021-04-16 20:53:46 其他开发

我要分配/释放哪些对象

在Objective-C中,简单地讲-我在假设 正确时,必须正确释放所有指针变量时是否正确? 每个指针变量(*)是某种类吗? 每个指针变量因此都需要分配并使用“分配”和“初始化”(或类似方法)初始化? 使用对象方法声明变量时,我可能不需要“分配”或“初始化”吗? 数字声明(BOOL,int,float等)只要不声明为指针就不需要内存管理? 感谢您提供任何有助于解决我的困惑的建议 ..
发布时间:2020-06-04 19:19:21 移动开发

obj-c NSString和alloc / retain / release

这可能是一个关于对象分配/保留/释放的更多问题,但我将以NSString为例。我知道我可以这样做: NSString * myString = [[NSString alloc] initWithString:@“ Test”]; 实质上是分配和初始化由变量myString引用的字符串,稍后应调用[myString release]在。但是,如果在执行此操作之后,将其设置 ..
发布时间:2020-06-04 19:19:17 移动开发

在启用ARC的项目中使用alloc,init

实际上,我正在一个启用了 ARC 的项目中。我知道使用 alloc 和 init 占用了所有权宾语。我知道,如果我创建这样的字符串 NSString * myString = [[NSString alloc] initWithFormat:@“东西”] ; 然后我需要释放 myString 自己。 如果我启用了ARC,该怎么办?我无法释放自己。那么会造成泄漏吗?还是我 ..
发布时间:2020-06-04 19:19:06 移动开发

初始化时是否有必要调用指针= NULL?

当我创建指向某个结构的指针时,是否必须将其设置为NULL,然后分配它然后使用它?为什么? 解决方案 否,声明语言时,没有要求(就语言而言)初始化任何指针变量.因此 T* ptr; 是有效的声明,它引入了具有不确定值的名为ptr的变量.您甚至可以以某种方式使用该变量,而无需先分配任何内容或将其设置为任何特定值: func(&ptr); ..
发布时间:2020-05-28 21:23:47 其他开发

ObjC-为什么分别实现[alloc]和[init]方法时不正确?

在不重新分配任何指向该对象的指针的情况下,切勿初始化该对象.例如,请勿执行以下操作: NSObject *someObject = [NSObject alloc]; [someObject init]; 如果对init的调用返回了其他对象,那么您将获得指向最初分配但从未初始化的对象的指针. 实际上,这是Apple的ObjC文档中的示例,但是我对此不太清楚,这就是为什么NSObje ..
发布时间:2020-05-19 02:18:49 移动开发

用allocWithZone创建一个单例:

BNRItemStore是一个单例,我对为什么必须调用super allocWithZone:而不是普通的super alloc感到困惑.然后覆盖alloc而不是allocWithZone. #import "BNRItemStore.h" @implementation BNRItemStore +(BNRItemStore *)sharedStore { static BNR ..
发布时间:2020-05-19 01:25:55 移动开发

如何释放静态Objective-C变量

StackOverflow问题“使用静态关键字在Objective-c中定义缓存变量时" 引用不应该发布static变量吗?如果是,应在代码中的何处发布它们?如果没有,为什么不呢? 解决方案 不应该发布static变量吗?如果是,应在代码中的何处发布它们?如果没有,为什么不呢? 这取决于.如果变量仅初始化一次,并且应在应用程序的整个生命周期内保持不变,则否,则不应释放该变量(无论 ..
发布时间:2020-05-19 01:24:09 移动开发

Objective-C/iPhone开发中的延迟实例化

快速问题...好吧,我了解所有的属性在Objective-C中都以nil开始,并且向nil发送消息没有任何作用,因此您必须使用[[Class alloc] init]进行初始化;在向新创建的属性发送消息之前.但是,如果我不向该属性发送消息或使用self.property = something设置属性,该怎么办?在这些情况下,我还需要分配init吗?另外,UI属性是否也从零开始,例如您从情节提要中 ..

alloc和allocWithZone之间有什么区别?

在论坛讨论中,似乎最大的区别是性能因素, allocWithZone:将从特定的内存区域分配内存,从而降低交换成本. 在实践中,几乎没有机会使用allocWithZone:,任何人都可以举一个简单的示例来说明使用allocWithZone:的哪种情况? 谢谢 解决方案 当一个对象创建另一个对象时, 有时要确保一个好主意 他们都是从同一个分配的 内存区域.区域法 (在NSOb ..
发布时间:2020-05-08 21:30:04 移动开发

Swift中的指针和malloc

我正在尝试将此转换为快速内容. 面对内存分配逻辑问题 Byte *p[10000]; p[allocatedMB] = malloc(1048576); memset(p[allocatedMB], 0, 1048576); 如何快速编写此内容? 解决方案 您可以在Swift中使用malloc,它会返回“原始指针": var p: [UnsafeMutableRaw ..
发布时间:2020-05-05 12:40:46 移动开发