草庐IT

automatic-ref-counting

全部标签

ios - ARC : returning allocated object from a method called by performSelector, 可以吗?

我不确定我是否在这里造成泄漏,是否可以将分配的NSError返回给执行选择器的调用方法?创建NSMutableArray并将其存储在我为回调获得的同一对象中是否可以?然后将其传递给代表?代码工作正常,但因为我是arc的新手,所以我害怕做错什么。(我正在使用执行选择器,因为我的选择器是动态的。只是为了示例,我是静态编写的)。AFHTTPRequestOperation*operation=[self.clientHTTPRequestOperationWithRequest:requestsuccess:^(AFHTTPRequestOperation*operation,idrespo

ios - ARC block ,弱和保留计数

我以为我已经很了解弱引用和block,但是在尝试下面的代码片段时,有一些我不明白的地方。方法测试1:一切正常,对象不保留方法测试2:我不明白为什么对象似乎一直保留到方法结束测试3!甚至明确设置object=nil在方法结束时测试2不会改变任何东西。方法测试3:对象没有保留。为什么是方法测试2不是这样吗?作为一个附带问题,我实际上想知道弱变量是否是线程安全的?即,如果我在尝试从不同线程访问弱变量时永远不会得到任何BAD_ACCESS异常。@interfaceObject:NSObject@property(nonatomic)NSIntegerindex;@end@implementat

ios - 对 IBOutlet 使用强/保留的缺点?

我已经阅读了一些问答和文档,其中指出我们应该对IBOutlet使用weak,除非它是文件所有者的顶级对象。但是如果我仍然使用strong/retained,是否有任何重大缺点,或者它只是多余的,因为subview已经通过addSubview:保留了?注意:请不要在这里复制weak/strong的定义,我不需要那个,我想看看真实世界中对IBOutlet使用strong可能会导致问题的案例。谢谢。 最佳答案 使用MRC,如果你使用retain,你将不得不自己释放内存。使用ARC,如果您使用strong并且系统从您的应用程序请求内存(=您

android - CSS :focus automatically opens link on android device

在网站上,我在链接上使用:hover和:focus作为触摸设备。但是在Android设备上,如果我触摸链接,它会执行:focus但随后会自动打开链接。它应该执行:focus并且如果用户再次点击链接,那么它应该打开链接。这可以用纯CSS实现吗?我得到了一个关于我的:hover和:focus代码的简短示例:#menuli:hoverul.sub-menu,#menuli:focusul.sub-menu{display:block;}在iOS上没有问题(在iOS上完美运行)。仅适用于Android设备。 最佳答案 您将需要一些javas

ios - UIViewController 未释放

我遇到这个问题有一段时间了,并尝试了几种方法来避免它,但现在我决定一劳永逸地解决它:)我有一个聊天ViewController,它使用KVO观察NSSet,ChatVC有一个UITableView,每次将新的ChatMessage插入到NSSet时,它也作为UITableViewCell添加到TableView。现在,我的问题不在于观察,我猜它在某种程度上与内存管理有关。在我的ChatVC中,永远不会调用dealloc方法,因此vc始终在后台观察NSSet对象。我已经尝试手动删除viewWillDisappear上的观察者,但ChatVC仍在后台。使用Instruments对其进行分析

ios - iphone 应用程序因内存压力而崩溃

在我的iPhone应用程序中,当发送一些数据包时,当有更多数据包时应用程序崩溃,并且它在xcode上抛出一个警告,说由于内存压力而终止应用程序。在我的代码中的几个地方,我在for循环中分配了一些对象并将这些分配的对象添加到队列中,所以在添加之后我想在for循环中释放这些对象,因为它启用了ARC项目我不能发布它,我的问题是在这种情况下会没有帮助吗?而不是释放它,如果我们将这些对象设置为nil,它会释放内存吗(我知道nil不会减少保留计数)设置nil是否有助于减少内存使用?假设我的代码类似于下面的例子NSMutableArray*arrObj=[[NSMutableArrayalloc]i

ios - 如何管理 ios ARC 项目中的内存分配问题

我正在从事应用程序内存使用量持续增加的项目即使我在相同的View和应用程序处于空闲状态我正在使用ARC,也没有调用dealloc。我的大部分属性都是非原子的并保留。 最佳答案 XCode有一个内置的内存分析器,可以帮助您解决这个问题-有关如何使用它的教程,这可能会有所帮助http://www.raywenderlich.com/23037/how-to-use-instruments-in-xcode否则,如果未调用dealloc,则可能是保留循环的征兆(两个对象保持对彼此的强引用,因此它们永远不会被释放)。

第47章 SQL COUNT() 函数教程

SQLCOUNT()函数COUNT()函数return匹配指定条件的行数。SQLCOUNT(column_name)语法COUNT(column_name)函数return指定列的值的数目(NULL不计入):SELECTCOUNT(column_name)FROMtable_name;SQLCOUNT(*)语法COUNT(*)函数return表中的记录数:SELECTCOUNT(*)FROMtable_name;SQLCOUNT(DISTINCTcolumn_name)语法COUNT(DISTINCTcolumn_name)函数return指定列的不同值的数目:SELECTCOUNT(DIST

vue3父组件使用ref调用子组件方法

在vue2中,父组件通过ref调用子组件的方法只需要给子组件添加ref属性,然后使用this.$refs.XXX.method即可exportdefault{mounted(){this.$refs.myInput.focus();}}但是在vue3中,子组件需先使用defineExpose将方法暴露给父组件//子组件constmyMethod=()=>{console.log('HellofrommyMethod!');};//将myMethod暴露给父组件defineExpose({myMethod});//父组件中调用调用方法如下:1、使用getCurrentInstanceimport

ios - [array count] 和 array.count 在 Objective-C 中有什么区别

如果我想知道NSArray的大小,我可以使用两种类似的方法:NSArray*arr=@[@"1",@"2"];NSIntegeri=[arrcount];NSIntegerj=arr.count;那么这两种方式有什么区别呢?会有任何性能差异吗?非常感谢 最佳答案 用[arr计数];您将消息计数发送到数组对象。如果arr.count出现在某个表达式的右边,就是调用count属性的getter,和[arrcount]基本一样;如果object.someProperty出现在某个表达式的左边,则调用的是count属性的setter,这与[