alloc相关内容
快速问题...好吧,我知道在Objective-C中所有属性都以nil开始,并且向nil发送消息没有任何作用,因此您必须使用[[Class alloc] init]进行初始化;在向新创建的属性发送消息之前.但是,如果我不向该属性发送消息,或者我使用 self.property = something 设置该属性呢?在这些情况下我是否也需要 alloc init ?另外,UI 属性是否也从 nil
..
注意:我对 Objective-C 比较陌生,并且来自 Java 和 PHP. 谁能给我解释一下为什么我总是要先分配然后初始化一个实例? 难道这不能在这样的 init 方法中完成: + (MyClass*)init {MyClass *instance = [MyClass alloc];[实例 setFoo:@"bla"];返回实例;}+ (MyClass*)initWithStr
..
我制作了2d array(matrix)+ alloc和free函数来管理内存,但是它不能很好地工作,valgrind打印很多错误和内存丢失的信息. Alloc:参数s表示矩阵的大小 int ** alloc(int s){int **矩阵;我矩阵=(int **)malloc(s * sizeof(int *));对于(i = 0; i
..
在Objective-C中,简单地讲-我在假设 正确时,必须正确释放所有指针变量时是否正确? 每个指针变量(*)是某种类吗? 每个指针变量因此都需要分配并使用“分配”和“初始化”(或类似方法)初始化? 使用对象方法声明变量时,我可能不需要“分配”或“初始化”吗? 数字声明(BOOL,int,float等)只要不声明为指针就不需要内存管理? 感谢您提供任何有助于解决我的困惑的建议
..
我将如何处理: xmlObject * system_domain = [xmlObject alloc] xmlObject * system_description = [ xmlObject alloc] xmlObject * system_type = [xmlObject alloc] 到我只能 xmlObject * system_doma
..
这可能是一个关于对象分配/保留/释放的更多问题,但我将以NSString为例。我知道我可以这样做: NSString * myString = [[NSString alloc] initWithString:@“ Test”]; 实质上是分配和初始化由变量myString引用的字符串,稍后应调用[myString release]在。但是,如果在执行此操作之后,将其设置
..
我的调用堆栈显示以下内容: -从带有信号10(SIGBUS)的信号处理程序中调用- 001301b8allocate__t24__default_alloc_template2b0i0Ui(20,20,309940,36,fc55 1a00,0)+ a4 0011dcb8 __nw__Q2t12basic_string3ZcZt18string_char_traits1ZcZt2
..
实际上,我正在一个启用了 ARC 的项目中。我知道使用 alloc 和 init 占用了所有权宾语。我知道,如果我创建这样的字符串 NSString * myString = [[NSString alloc] initWithFormat:@“东西”] ; 然后我需要释放 myString 自己。 如果我启用了ARC,该怎么办?我无法释放自己。那么会造成泄漏吗?还是我
..
我知道我应该使用: ObjectClass * tmpObject = [[ObjectClass alloc] init]; realObject = tmpObject; [tmpObject版本] 初始化 realObject (其中 realObject 是类中的对象) 但是现在使用ARC模式,释放是自动的,我仍然需要使用此技术吗? 我可以简单
..
当我创建指向某个结构的指针时,是否必须将其设置为NULL,然后分配它然后使用它?为什么? 解决方案 否,声明语言时,没有要求(就语言而言)初始化任何指针变量.因此 T* ptr; 是有效的声明,它引入了具有不确定值的名为ptr的变量.您甚至可以以某种方式使用该变量,而无需先分配任何内容或将其设置为任何特定值: func(&ptr);
..
在不重新分配任何指向该对象的指针的情况下,切勿初始化该对象.例如,请勿执行以下操作: NSObject *someObject = [NSObject alloc]; [someObject init]; 如果对init的调用返回了其他对象,那么您将获得指向最初分配但从未初始化的对象的指针. 实际上,这是Apple的ObjC文档中的示例,但是我对此不太清楚,这就是为什么NSObje
..
BNRItemStore是一个单例,我对为什么必须调用super allocWithZone:而不是普通的super alloc感到困惑.然后覆盖alloc而不是allocWithZone. #import "BNRItemStore.h" @implementation BNRItemStore +(BNRItemStore *)sharedStore { static BNR
..
StackOverflow问题“使用静态关键字在Objective-c中定义缓存变量时" 引用不应该发布static变量吗?如果是,应在代码中的何处发布它们?如果没有,为什么不呢? 解决方案 不应该发布static变量吗?如果是,应在代码中的何处发布它们?如果没有,为什么不呢? 这取决于.如果变量仅初始化一次,并且应在应用程序的整个生命周期内保持不变,则否,则不应释放该变量(无论
..
快速问题...好吧,我了解所有的属性在Objective-C中都以nil开始,并且向nil发送消息没有任何作用,因此您必须使用[[Class alloc] init]进行初始化;在向新创建的属性发送消息之前.但是,如果我不向该属性发送消息或使用self.property = something设置属性,该怎么办?在这些情况下,我还需要分配init吗?另外,UI属性是否也从零开始,例如您从情节提要中
..
据我了解,在C ++中,您可以在堆栈上创建对象: SomeClass object = SomeClass(); 或在堆上: SomeClass *object = new SomeClass(); 在Objective-C中,您似乎总是在堆上创建对象,因为[SomeClass alloc]返回指向新实例的指针.这是正确的吗? 是否在堆栈上分配了对象?如果是这样,那将是一
..
在论坛讨论中,似乎最大的区别是性能因素, allocWithZone:将从特定的内存区域分配内存,从而降低交换成本. 在实践中,几乎没有机会使用allocWithZone:,任何人都可以举一个简单的示例来说明使用allocWithZone:的哪种情况? 谢谢 解决方案 当一个对象创建另一个对象时, 有时要确保一个好主意 他们都是从同一个分配的 内存区域.区域法 (在NSOb
..
有没有一种方法可以在C中增长数组,但前提是可以在适当的位置增长内存(也就是说,如果需要更改指针,则不能增长)? 解决方案 在标准C语言中,没有能够做到这一点的函数.
..
我正在尝试将此转换为快速内容. 面对内存分配逻辑问题 Byte *p[10000]; p[allocatedMB] = malloc(1048576); memset(p[allocatedMB], 0, 1048576); 如何快速编写此内容? 解决方案 您可以在Swift中使用malloc,它会返回“原始指针": var p: [UnsafeMutableRaw
..
这是我的TextValidator类: // TextValidator.h #import
..
注意:我对Objective-C比较陌生,并且来自Java和PHP。 有人可以向我解释为什么我总是先分配和然后初始化一个实例? 无法在init方法中这样做: +(MyClass *)init { MyClass * instance = [MyClass alloc]; [instance setFoo:@“bla”]; return instance; }
..