草庐IT

automatic-ref-counting

全部标签

ios - 为什么这个带有 ARC 的简单应用程序会泄漏?

所以我对objC编程比较陌生。但不是C。在一个更复杂的应用程序中,我认为我有内存泄漏。我编写了这个程序只是为了进行一些测试。该应用程序非常简单:它将一系列整数存储在MutableArray中,这些整数表示已安排的计时器。该应用程序在当前运行循环中有一个NSTimer,它每秒检查一次是否是将计数器与MutableArray的正确元素进行比较的正确时间。一切正常,但调试面板中的内存增长,增长,增长......我已经尝试了一些变体,但我仍然缺少关于ARC的一些东西。我只是不明白,因为ARC不是垃圾收集器,为什么内存会增长以及我做错了什么。这是代码:-(id)initWithLabel:(UI

ios - 在 viewDidLoad 之外时的 NULL 自定义类对象?

u1Option是一个Option(自定义类)对象,它是在我的ViewControllerviewDidLoad中声明并调用为:-(void)viewDidLoad{[superviewDidLoad];Option*u1Option=[[Optionalloc]init];[u1OptionsetName:@"test"];NSLog(@"Test1Result:%@",u1Option.name);}Option是一个继承自NSObject的自定义类,在Option.h中声明了一个属性:@propertyNSString*name;但是,如果尝试在IBAction中使用u1Opti

ios - Xcode 8 配置文件仅包含 "Automatic"

我的新“供应配置文件”仅显示“自动”,我的旧“已弃用”选项正确列出了我的所有配置文件。我试过关闭并重新打开、重新生成和重新下载所有内容。没有办法再针对特定的配置文件了吗? 最佳答案 您需要在项目的“常规”选项卡中停用“自动管理签名”。有关详细信息,请参见屏幕截图。 关于ios-Xcode8配置文件仅包含"Automatic",我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3989

ios - react native 错误 : [__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'

我在尝试将数据传递给Obj-C方法时遇到错误。代码如图,Obj-C:RCT_EXPORT_METHOD(connect:(NSDictionary*)params){_connection=[_phoneconnect:paramsdelegate:self];}js:Twilio.connect({To:'+447842111281'});问题源于处理NSDictionary,但是我看不出数据有问题。任何见解将不胜感激。堆栈轨迹如下:Terminatingappduetouncaughtexception'NSInvalidArgumentException',reason:'***

ios - "Assigning retained object to weak property"与初始化?

在玩ARC时,我注意到当我的字符串较弱时:@property(weak,nonatomic)NSString*myString;然后如果我要这样做:self.myString=[[NSStringalloc]init];甚至[[NSStringalloc]initWithString:@""]Xcode立即警告我“将保留的对象分配给弱属性;对象将在分配后释放”。虽然我能理解,因为它的引用计数是0,为什么它可以在没有警告的情况下工作:self.myString=@"";它对ARC有何影响? 最佳答案 因为当你有弱属性时,ARC不会增加

iphone - ARC 是否意味着我应该声明静态类型而不是 id?

ARC文档在LLVM站点上公开可用,因此NDA在这里不是问题。我发现在为ARC准备代码时,我在很多以前使用(id)的情况下使用了(NSObject*)。例如,如果我正在编写一个initWithParent:方法,它可能是-(id)initWithParent:(NSObject*)parent;我以前会写的地方-(id)initWithParent:(id)parent;我的问题是-这种做法有意义吗? 最佳答案 我相信这适用于大多数情况,至少如果您的对象派生自NSObject(并非所有对象都派生)。Here'saninteresti

ios - 圆弧 : Dealloc not being called

我不明白为什么我需要在某些block中有一个弱的self,而其他的似乎工作正常。如果我在Notificationblock中没有对self的弱引用,dealloc将不会被释放。不过,它与第二个效果很好。//Whenusingthis,deallocisNOTbeingcalled[[NSNotificationCenterdefaultCenter]addObserverForName:PROD_DONEobject:nilqueue:[NSOperationQueuemainQueue]usingBlock:^(NSNotification*note){[selfhideAds];}

ios - 是否可以在 Build Phases 的编译源中不添加 "fno-objc-arc"来启用非 arc 文件?

是否可以在构建阶段不向编译源添加fno-objc-arc以某种方式处理非arc文件?更具体地说,有没有办法在代码中的某处添加fno-objc-arc?原因是,我想开源我的一个使用非arc文件的库,我不希望使用我的库的人手动添加fno-objc-arc。只需拖放... 最佳答案 没有。但是如果你看看一些库做了什么,它们会编写宏来有条件地调用MRC调用,例如release、autorelease等,具体取决于用户是否是否使用ARC进行编译,例如使用__has_feature(objc_arc)测试。然后代码使用这些宏,而不是标准的rel

ios - AVPlayerItem step Count 仅向前平滑,但向后波动?

我已经实现了AVPlayerItem的stepByCount方法来逐帧手动浏览视频。这是前进1步的样子。AVPlayer*player=[AVPlayerplayerWithURL:url];[player.currentItemstepByCount:1];后退1步AVPlayer*player=[AVPlayerplayerWithURL:url];[player.currentItemstepByCount:-1];前进的1步(按时间帧逐帧前进)效果很好。但是,当我尝试逐帧向后移动时,它并不像前进那样平滑。我错过了什么吗?或者这是因为视频的编码方式——本来就应该向前看而不是向后看

ios - Objective-C 中的动态缓冲区(带 ARC)

我正在尝试使用NSString对象的-(void)getCharacters:(unichar*)bufferrange:(NSRange)aRange方法,但我有一个第一个参数的问题。此NSString中的字符数不固定,因此我需要动态分配缓冲区(缓冲区的大小必须类似于[my_stringlength]*sizeof(UniChar))。我是Objective-C的新手,不知道该怎么做。我可以像在C程序中那样使用malloc(启用ARC)吗? 最佳答案 是的,您可以malloc()适当大小的缓冲区。您必须free()缓冲区当不再使用