Tag: 自动ref counting

尝试将iOS5以前版本的iOS日历库集成到使用iOS5的XCode 4中的新项目中 – 如何端口?

我需要iOS 5项目中的日历视图。 我在github上find了这个库 ,这正是我所需要的。 不过,iOS5之前的iOS版本更是如此。 作为集成的一个初步步骤,我下载了zip文件,并使用XCode 4中的“refactor-> Convert to Objective-C ARC”中的function将项目转换为ARC兼容的iOS 5项目来执行此操作。 我崇拜这个项目,并在iOS5中build成。 现在我按照如何将文件集成到我现有的项目中的说明,这里是我到目前为止所做的:1)我在我的项目中创build了一个名为“ImportedFiles”的新组2)我点击了“添加文件”组,并select我下载的日历项目的整套文件,并将其解压缩并复制到我的项目中。 3)然后查看下载网站上的说明。 具体指令#3他们要求你链接文件。 这是我放弃的地方。 我无法弄清楚该怎么做。 有人可以帮助我在这个整合过程中。 我想知道1)如果我迄今为止所做的是正确的2)如何将这些文件复制到我的testing项目后继续? 非常感谢

内存消耗增加但是泄漏未检测到泄漏时,如何处理iOS中的泄漏?

我正在开发一个iOS ARC应用程序(更多的代码可以应要求提供),而且之前我正在制作和丢弃大量的图像。 我认为我的某个地方仍然有一个图像的引用,即使我叫removeFromSuperview,并试图删除所有引用不再使用的图像。 我尝试了Leaks,Leaks报告说,随着时间的推移,内存使用量大致呈线性增长,大约从17M左右开始。 我将所有对图像的引用都replace为实例variables,因此它们将占用一个小的,有限的和固定的内存量,并且转换用于钟针的图像,而不是摆脱这些图像。 不幸的是,这导致内存使用量逐渐增加,从5M开始,而不是17M,但是另一个相同的问题,只是转化为更好的起点。 我的代码的修剪版本如下。 你能告诉我什么是泄漏(或“泄漏”,因为泄漏没有表明泄漏)关于这个,以及如何我可以保持接近代码使用时的内存边界启动? 谢谢, – (void) renderScreen { int height = floor([[UIScreen mainScreen] bounds].size.height + .4); int width = floor([[UIScreen mainScreen] bounds].size.width + .4); if (height == 2048 || height == 2008 || height == 1024 || height == 1004 || height == 984) { if (UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)) { _backgroundImage […]

僵尸在后台线程中调用完成块

我将一个完成块传递给我的方法,这个完成块将在networking请求完成时在后台调用。 不幸的是,如果在此期间调用对象被释放,应用程序崩溃: ViewController(可能因为从导航堆栈中popup而被释放)代码: __unsafe_unretained ViewController *weakSelf = self; [[URLRequester instance] sendUrl:url successBlock:^(id JSON) { [weakSelf webserviceCallReturned:JSON]; }]; URLRequester-Code(当然更简单): – (void)sendUrl:(NSString *)urlAfterHost successBlock:(void (^)(id))successBlock { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ sleep(2); successBlock(nil); return; }); } 如果在这2秒内,ViewController从导航堆栈中popup,则应用程序崩溃。 我错过了什么?

如何禁用项目中单个文件的ARC?

我在我的项目中成功使用了ARC。 但是,我遇到了一些文件(比如unit testing和模拟对象),现在ARC的规则稍微脆弱一些。 我记得听说有一种方法可以在每个文件的基础上禁用ARC,尽pipe我一直无法find这个选项。 这可能吗? 如何在每个文件基础上禁用ARC?

CFStringRef到NSString ARC泄漏。 为什么?

我一直在寻找从CFStringRef到ARC的NSString的正确方法,以避免内存泄漏,一些主要投票答案build议: NSString * string = (__bridge NSString *)cfString; 我在这里使用这种方法,但是在分析应用程序时,我仍然在这个小方法中发现内存泄漏[见附图]。 所以,我不知道如何解决这个问题。 有人有解决这个问题? 谢谢 所以,显然在返回之前添加了CFRelease(ext)修复了漏洞。 问题是我不认为我完全理解了原因。 我认为这一行: NSString * extension = (__bridge NSString*)ext 将获得核心基金会分机string的所有权,并处理该版本。 任何人都可以解释这里究竟发生了什么?

xcode中项目/目标的单独设置是什么意思?

[旧问题标题曾经是ARC被设置为YES,但是Xcode显示NO ,编辑为了使问题更清楚。 ] 我有一个使用iOS 5.0 SDK在xcode 4.2.1中的iOS项目。 该项目是在版本控制下(使用内置的git接口),其中一个早期的提交是在将项目转换为使用ARC之后。 从那时起,所有的工作都可以用更多的提交等等 现在我突然注意到,xcode中的构build设置显示相关选项(“Objective-C自动引用计数”)设置为NO。 但是,当我直接检查项目设置文件project.pbxproj (通过版本控制,或者只是通过打开文本编辑器),我看到CLANG_ENABLE_OBJC_ARC设置为YES 。 这是我应该担心的问题吗? 该项目编译并运行OK。 编辑 正如Dondragmer指出的那样,项目和目标都有一个单独的标志。 事实上,这个项目被设置为“否”,目标是“是”。 对于项目/目标有一个单独的标志是什么意思?

Xcode静态分析器在使用ARC时抱怨潜在的泄漏

我正在使用ARC与ios sdk 6.0。 我很确定我有一些内存泄漏,我有麻烦追查。 运行静态分析器后,我得到以下两种方法的警告: + (id<MXURLRequest>) requestWithURL:(NSURL*)url { MXASIURLRequest *request = [[MXASIURLRequest alloc] init]; [request setUrl:url]; return request; // STATIC ANALYSER: Potential leak of an object stored into 'request' } – (id)parseBody:(NSError *)error { NSString *contentType = [[_request responseHeaders] objectForKey:@"Content-Type"]; id body = nil; if ([contentType hasPrefix:@"application/json"] || [contentType hasPrefix:@"text/json"] || [contentType hasPrefix:@"application/javascript"] || […]

为什么在调用popViewControllerAnimated时ARC不释放内存

我的项目使用ARC ,当我必须显示与导航控制器的视图我这样做: ShareViewController_iPhone *share = [[ShareViewController_iPhone alloc] initWithNibName:@"ShareViewController_iPhone" bundle:nil]; [self.navigationController pushViewController:share animated:YES]; 我可以看到在Xcode内存增加了一定的价值,然后当我解雇的观点,我这样做: [self.navigationController popViewControllerAnimated:YES]; 但是当视图closures时,内存不会减less,我该怎么做呢?

build筑时,我不断收到弧线错误

编辑我的问题是,我没有链接到我的项目的类。 我正在开发一个基本上是terminal应用程序的应用程序。 当我尝试构build它时,出现构build错误。 Ld /Users/evanstoddard/Library/Developer/Xcode/DerivedData/Highjack-anstcjvykrnniwbltvijvyvexirq/Build/Products/Debug-iphonesimulator/Highjack.app/Highjack normal i386 cd /Users/evanstoddard/Desktop/Highjack setenv IPHONEOS_DEPLOYMENT_TARGET 6.0 setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk -L/Users/evanstoddard/Library/Developer/Xcode/DerivedData/Highjack-anstcjvykrnniwbltvijvyvexirq/Build/Products/Debug-iphonesimulator -F/Users/evanstoddard/Library/Developer/Xcode/DerivedData/Highjack-anstcjvykrnniwbltvijvyvexirq/Build/Products/Debug-iphonesimulator -filelist /Users/evanstoddard/Library/Developer/Xcode/DerivedData/Highjack-anstcjvykrnniwbltvijvyvexirq/Build/Intermediates/Highjack.build/Debug-iphonesimulator/Highjack.build/Objects-normal/i386/Highjack.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=6.0 -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/evanstoddard/Library/Developer/Xcode/DerivedData/Highjack-anstcjvykrnniwbltvijvyvexirq/Build/Products/Debug-iphonesimulator/Highjack.app/Highjack Undefined symbols for architecture i386: "_OBJC_CLASS_$_XXFdHijacker", referenced from: objc-class-ref in ViewController.o ld: symbol(s) not […]

核心数据:插入对象崩溃在全局队列

我有一个非常简单的核心数据演示,其中只有一个button。 当我点击“运行”button时,应用程序在全局队列中运行的for循环中创build10,000个对象。 更新更多的细节:如果我把主循环for循环,它运行良好。 更新我的意图:我知道MOC不是线程安全的,但根据Apple文档 ,我们也可以使用串行队列来访问MOC,并且串行队列使用多个线程。 在这里我创build了核心数据堆栈: #pragma mark – Core Data Stack – (NSManagedObjectContext *)managedObjectContext { if (nil != _managedObjectContext) { return _managedObjectContext; } _managedObjectContext = [[NSManagedObjectContext alloc] init]; if (self.persistentStoreCoordinator) { [_managedObjectContext setPersistentStoreCoordinator:self.persistentStoreCoordinator]; } return _managedObjectContext; } – (NSManagedObjectModel *)managedObjectModel { if (nil != _managedObjectModel) { return _managedObjectModel; } _managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil]; return […]