草庐IT

allocation

全部标签

iphone - [[NSDate date] retain] 和 [[NSDate alloc] init] 的区别

由于以下两个服务于相同的目的,today=[[NSDatedate]retain];和today=[[NSDatealloc]init];那它们有什么区别呢?这里做的任何事情都与内存分配方法有关,或者其他什么是相应地使用它们的原因。 最佳答案 [NSDatedate]是一个方便的构造函数,使用它您可以摆脱将对象释放到自动释放池的麻烦。将retain消息发送到方便的构造函数,如[[NSDatedate]retain]使您成为该对象的所有者,您有责任正确释放它。[[NSDatealloc]init]是您成为对象所有者的默认初始化程序,几

ios - Xcode 分配工具生成

我一直在ARC项目(在设备上运行)上使用Instruments以确保我正在清理所有废弃的内存。为此,我一直在使用分配生成工具并为同一操作拍摄我的堆快照10-20次。我感到困惑的是增长。有时增长为0,然后有时增长了一些字节(从几个字节到几千字节不等)似乎在增加。但通常至少有几次迭代的增长为0。我的问题是:如果我的增长有时为0,是否意味着我的内存管理是正确的?或者我还有问题需要查明吗?我知道内存可能需要几个周期才能“耗尽”,但即使在>10次迭代后仍在分配和剩余的内存又如何呢?这似乎是一个关于Instruments解释的更普遍的问题,所以我省略了任何特定的代码。此外,我发现这种情况发生在各种

iOS Instruments Allocation 和 Leaks 使 Xamarin 应用程序崩溃

我目前正在使用Xamarin开发一个大型应用程序。我正在尝试修复发生的一些泄漏,但每当我使用仪器泄漏或分配时,这些工具都会使应用程序卡住并且记录停止进行任何操作。我的应用程序处于此链接中所述的调试模式:XcodeInstrumentsstopsrecordingwheniPadappleavesthesplashscreen日志中没有特别的崩溃,我已经尝试启用NSZombie检测但没有成功。Dec1521:00:15SU04xxxxxxxxx[351]:UsingThreadCount:2Dec1521:00:23SU04backboardd[28]:CoreAnimation:upd

iOS 工具分配净值/整体

我已经使用工具分配测试了我的应用程序并得到了这张图片:如图所示,我的应用程序正常工作,但它通常以总字节数计值吗?我担心“#Allocations(Net/Overall)”,因为它的颜色是红色。这是什么意思(红色) 最佳答案 红色是在您的应用程序的所有运行时期间进行和取消分配的总(总体)分配。紫色(红色上方的细条)是已分配但尚未解除分配的对象。我想说你不需要太担心它,特别是对于内部对象或Malloc,并确实关注更高级别的对象,如View和Controller。此外,如果您单击分配工具的i,您可以选择忽略CF(CoreFoundati

objective-c - Objective-C : What does allocation 'count' mean (using instruments)

我使用Instruments运行我的应用程序,发现我的方法之一“[UICustomButtonloadButton..]”分配的计数一直在增加(见下面的屏幕截图)-每当我滚动tableview和单元格可见时,就会触发有问题的方法。我的问题是1)计数实际上意味着什么?持续增加正常吗?2)计数的增加是我的滚动变得越来越滞后的原因吗? 最佳答案 工具中的计数显示您的应用程序创建的给定类的实例数仍然存在。所以增加到你的应用程序已经创建了它需要的所有对象的点是正常的,然后它应该或多或少保持不变(或多或少是因为你可能一直在创建和释放对象)。如果

iphone - 在 Objective-C 中,如何处理 [[myView alloc] init] 返回 nil?

似乎在一本书的代码示例中,总是定义init,以便仔细检查self是否能够存在。-(id)init{self=[superinit];if(self){//initialize}returnself;}然而,在返回时,没有任何代码检查对象是否能够存在。但是否应该检查,又该如何处理呢?如果对象不存在,是否意味着系统内存严重不足,甚至弹出错误消息也不可能? 最佳答案 However,uponreturn,noneofthecodeatallcheckswhethertheobjectisabletoexist.Butshoulditbec

ios - NSNumber numberWithFloat 与 Init 和 alloc

我有这行代码,我想弄清楚我编写它的方式的优缺点。我只是想将标签设置为浮点值并且两者都有效......只是不知道哪个更好......self.display.text=[[NSNumbernumberWithFloat:32.445]stringValue];有什么区别吗NSNumber*number=[[NSNumberalloc]initWithFloat:32.445];self.display.text=[numberstringValue];嗯-我知道肯定有区别-只是不确定会是什么。似乎第一个更像是一个包装器(如果这有意义的话)?谢谢!!! 最佳答案

iOS开发进阶:alloc、init、new

我们实例化一个NSObject对象,最常见的代码就是NXPerson*person=[[NXPersonalloc]init];对于调用alloc/init等方法底层究竟发生了什么,你是否知道呢?今天我们就来一探究竟:以下调试基于Apple开源的objc4-818.2代码进行。1.alloc的代码执行流程1.1.首先在上述代码开始开始位置打第1个断点,然后运行代码使得代码断在这个断点。1.2.然后点击alloc,跳转到了[NSObject.mmalloc],并在这里设置第2个断点。1.3.此时我们观察Xcode左侧的调用栈截屏1.png仔细看,我们会发现一个奇怪的问题:在main之后,[NSO

ios - Xcode5.1.1 and Xcode6 beta7 iOS7.1 64-bit [Allocator] 分配器无效,回落到malloc

[Allocator]Mappingfailed%d[Allocator]Allocatorinvalid,fallingbacktomalloc[Allocator]Allocatorinvalid,fallingbacktomalloc[Allocator]Allocatorinvalid,fallingbacktomalloc[Allocator]Allocatorinvalid,fallingbacktomalloc[Allocator]Allocatorinvalid,fallingbacktomalloc[Allocator]Allocatorinvalid,falling

objective-c - 在启用 ARC 的项目中使用 alloc、init

实际上,我正在开发一个启用了ARC的项目。我知道使用alloc和init是获取对象的ownership。我知道,如果我创建这样的字符串NSString*myString=[[NSStringalloc]initWithFormat:@"Something"];然后我需要释放我自己的myString。如果我使用启用了ARC会怎样?我不能释放自己。那么它会造成泄漏吗?或者我不应该像这样创建对象?我也可以像下面的代码一样创建一个字符串。NSString*myString=[NSStringstringWithFormat:@"Something"];但是对于支持ARC的项目我需要使用哪种类型