草庐IT

objective-c - ARC 会为您释放 malloc 的内存吗?

自动引用计数释放已分配的Objective-C对象。像char*这样的原始变量呢? 最佳答案 没有,根据llvmdocumentonARCAutomaticReferenceCountingimplementsautomaticmemorymanagementforObjective-Cobjectsandblocks,freeingtheprogrammerfromtheneedexplicitlyinsertretainsandreleases.Itdoesnotprovideacyclecollector;usersmuste

objective-c - EXC_BAD_ACCESS 消息发送到已释放的实例,但我使用的是 ARC?

我有一个从SOAPWeb服务获取信息的应用程序,我想在UITableView中显示结果。我有这个应用程序的早期版本,我正在创建一个新版本,以基本上清理并摆脱一堆已弃用且不再使用的遗留代码。在以前的版本中,这运行良好。在新版本中,没有那么多。基本上,当前方案返回3个字符串,我试图将它们用作UITableView中数据的基础。我正在努力解决这个问题,因为很难找到EXC_BAD_ACCESS错误!(顺便说一句,如果有人有办法让调试体验更像VisualStudio,我很想听听!不知道是哪一行导致了错误,而且无法在崩溃时查看我的局部变量,看看是什么。我已经在异常断点中添加了,但这似乎没有多大作用

带有 ARC 的 iOS 应用程序,查找对象的所有者

我正在编写一个使用ARC的应用程序,目前似乎有一些内存泄漏。谷歌搜索我发现了一些关于如何使用Inspector的提示。在那里我可以看到一些类的实例的大量分配,我还可以看到一些关于如何分配对象以及如何更改保留计数的调用堆栈。但似乎我看不到完整的调用堆栈,所以我不知道最终谁拥有该对象。在我看来,这个所有者以某种方式没有释放对象(或拥有可疑对象的对象)。任何人都可以给我一个关于找到分配对象的所有者的提示吗?另请注意,对象未标记为“泄漏”,而是已分配。对我来说,随着不断分配新对象,对象似乎被泄露了。任何有关如何最好地进行并找到可疑泄漏的进一步帮助表示赞赏。 最佳答案

c++ - 是否可以将自动引用计数 (ARC) 引入 C++?

ObjectiveC引入了一种称为ARC的技术,以将开发人员从内存管理的负担中解放出来。听起来不错,如果g++也有这个功能,我想C++开发者会很高兴的。ARCallowsyoutoputtheburdenofmemorymanagementonthe(AppleLLVM3.0)compiler,andneverthinkaboutretain,releaseandautoreleaseeveragain所以,如果LLVM3.0可以做到这一点,我认为g++也可以将C++开发人员从内存管理的繁重工作中解放出来,对吧?将ARC引入C++有什么困难吗?我的意思是:如果我们不使用智能指针,我们只

objective-c - 在 ARC 之后,我应该为调度队列使用什么属性?

我维护一个调度队列作为我的ViewController的一个属性。我在ViewController的init方法中创建了一次这个队列,并为一些后台任务重用了几次。在ARC之前,我是这样做的:@property(nonatomic,assign)dispatch_queue_tfilterMainQueue;在初始化中:if(filterMainQueue==nil){filterMainQueue=dispatch_queue_create("com.myQueue.CJFilterMainQueue",NULL);}但是在ARC之后,我不确定这是否应该仍然是“分配”,或者应该是“强”

iphone - 我需要在 ARC 中使用 dealloc 方法吗?

所以,我有课:@interfaceController:NSObject{UILabel*fileDescription;}@property(strong,nonatomic)UILabel*fileDescription;我是否需要在属性fileDescription等于nil的情况下使用方法dealloc?例如:-(void)dealloc{fileDescription=nil;}如果不是,谁将关闭fileDescription使用的内存? 最佳答案 通常您不需要提供子类dealloc方法,因为ARC管理实例变量的生命周期。

ios - 使用 arc4random() 时如何选择值的范围

我可以在使用arc4random()时设置一个数字范围吗?仅例如50-100。 最佳答案 正如下面其他帖子中所指出的,最好使用arc4random_uniform。(最初编写此答案时,arc4random_uniform不可用)。除了避免arc4random()%x的模偏差之外,它还避免了arc4random在短时间内递归使用时的播种问题。arc4random_uniform(4)将生成0、1、2或3。因此您可以使用:arc4random_uniform(51)只需将50添加到结果中即可获得50和100(含)之间的范围。

iphone - 是否需要 ARC 中的 NSNotificationCenter removeObserver?

这个问题在这里已经有了答案:KVOandARChowtoremoveObserver(3个回答)InARCdoweneedtosendremoveObserver:explicitly?(4个回答)关闭9年前。添加观察者会增加对象的保留计数吗?如果是,ARC是否也处理此观察者的移除?如果没有,我应该在哪里移除观察者? 最佳答案 即使您使用ARC,您也应该明确删除观察者。创建一个dealloc方法并在那里删除..-(void)dealloc{[[NSNotificationCenterdefaultCenter]removeObser

objective-c - arc4random 和 arc4random_uniform 有什么区别?

这个问题在这里已经有了答案:Arc4randommodulobiased(1个回答)关闭7年前。我已经看过关于Objective-C中random和arc4random之间差异的旧帖子,并且我已经在网上看到了这个问题的答案,但我真的没有理解,所以我希望这里的人能以更容易理解的方式解释它。使用arc4random和arc4random_uniform生成随机数有什么区别? 最佳答案 arc4random返回一个介于0和(2^32)-1之间的整数,而arc4random_uniform返回一个介于0和您传递的上限之间的整数。来自man3

ios - 在 Xcode 5 中运行代码覆盖时出现数十个 "profiling:invalid arc tag"

在Xcode5中启用代码覆盖率的情况下运行我的测试目标时,我在构建输出中收到以下数十条消息:profiling:invalidarctag(0x...)它似乎不会影响测试,因为它们成功完成,并且GCDA覆盖文件也按预期生成。知道消息的含义,或者如何隐藏消息/解决问题,因为它们会使构建输出变得困惑,并且很难找到测试用例结果。 最佳答案 这很可能是因为构建工具未能将当前结果合并到现有的.gcda覆盖文件中。如DaveMeehanpointsouthere,有一种通过清理产品构建文件夹来处理这个问题的蛮力方法,但一个不那么硬核的方法是从生