草庐IT

fno-objc-arc

全部标签

ios - CocoaLumberjack 错误 : Symbol not found: _objc_storeStrong

我是iOS开发的新手,正在尝试实现CocoaLumberjack日志记录。我从https://github.com/robbiehanson/CocoaLumberjack下载了最新的源,在我的项目中包含了所需的文件,进行了必要的代码更改,并收到如下所示的运行时链接器错误。环境为Xcode4.2Build4C199,项目Target设置为Device=iPad,DeploymentTarget=4.3。该项目最初是使用保留/发布编写的,所以我保留了原始源代码,为我正在使用的Lumberjack文件添加了编译器标志“-fobjc-arc”:DDFileLogger.m、DDLog.m和D

objective-c - Objective-C/iOS : Memory release with ARC (memory leak)

我是iOS/Objective-C的新手,我没有正确理解内存的释放。为了测试它,我创建了一个空的ARC启用的iPhone-Project并创建了一个非常简单的测试类:#import"MemTest.h"@implementationMemTest{}-(void)start{for(inti=0;i"];if(i%1000==0){NSLog(@"i=%d",i);}myString=nil;}}@end我只是在AppDelegate中开始测试:-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOpt

ios - 如何将Manual Retain-Release代码自动转换为ARC?

我为iOS4编写了数千行代码。代码库包含许多对retain和release的调用,当项目更新到iOS5时会导致错误和ARC。有没有办法自动将手动保留释放(MRR)代码转换为自动引用计数(ARC)? 最佳答案 来自Xcode4.2releasenotes:Toinitiatetheprocess,enableContinuebuildingaftererrorsintheGeneralPreferencespane,thenchooseEdit>Refactor>ConverttoObjective-CARC.Thetargetsth

ios - ObjC/iOS - 大写每个单词的首字母而不修改其他字母

有没有一种简单的方法可以将字符串“dinomcCool”转换为字符串“DinoMcCool”?使用'capitalizedString'方法我会得到@"DinoMccool" 最佳答案 可以枚举字符串的单词,分别修改每个单词。即使单词由空格字符以外的其他字符分隔,这也有效:NSString*str=@"dinomcCool.foo-bAR";NSMutableString*result=[strmutableCopy];[resultenumerateSubstringsInRange:NSMakeRange(0,[resultle

ios - objc_retain EXC_BAD_ACCESS

我在使用当前的iOS5应用程序在iOS6上进行测试时遇到了一些错误。我们遇到过在内部使用block而不是属性的无害方法的方法返回锁定。问题是调用方法有效,方法中的每一行代码(包括使用代码的block)也是如此我尝试在调用block之前使用[blockcopy],但绝对没有任何变化。 最佳答案 原来我的代码的函数定义是在内部接口(interface)中声明的,没有返回类型。这里有一些图形来说明这个问题。初始错误堆栈轨道有问题的方法(与self隔离以确定问题的确切位置)函数实现(调用并返回)私有(private)接口(interface

iOS Admob 网络中介 : Duplicate Symbols Error With all_load and ObjC

我知道以前有人问过这个问题,但我已经尝试了所有我能找到的方法,但都没有奏效。我有一个功能齐全的iOS应用,现在我想将AdMob网络中介与其集成。我已经成功地让AdMob正常工作,但Mediator需要设置链接器“-all_load”和“-ObjC”(在其他链接器标志中)。果然,如果我在没有它们的情况下构建,则不会显示任何广告,并且在日志中它表示需要设置它们。问题是我无法使用all_load或ObjC集成功构建我的应用程序。我读到ObjC不是iOS应用程序所必需的,但即使没有它,我仍然遇到all_load的问题。问题是我收到此错误:ld:体系结构armv7的重复符号[此处的某些命令][某

ios - ARC 是否保留在方法参数内分配的对象

今天测试了我对ARC的了解,我偶然发现了thisarticle它在“语句嵌套”标题下有一个示例,在我看来这似乎是错误的。在上面嵌入的示例中,用绿色下划线突出显示的行表示在函数内部分配的字符串在创建时将首先获得保留计数+1,然后在添加到数组时再次+1,然后一次数组在for循环后为nil'ed,字符串的保留计数将减1,保留原始字符串的保留计数为1,因此不会被释放。我本以为编译器会足够聪明,至少可以使这样的对象最初实际上没有保留计数,因为如果您刚刚拥有[[NSStringalloc]initWithFormat:@"Name1"]];这个被分配的字符串不会有任何指向它的东西,并且会在自动释放

iphone - ARC 和 Storyboard 的兼容性

考虑到设备和iOS,ARC和Storyboard的兼容性如何?ARC和Storyboard可以在iPhone3G、3GS、4和4S上运行吗?ARC和Storyboard可以在iOS4和5上运行吗? 最佳答案 ARC使用5.0或更高版本运行,StoryboardalsoneedsiOS5.因此,两者都可能适用于iPhone3GS及更高版本。编辑:显然,只要不使用weak,ARC也兼容iOS4.0及更高版本。我简单地测试了一下,似乎有效。这意味着iPhone3G也将兼容。 关于iphone-

objective-c - 作为Objective-C开发新手,使用ARC需要注意哪些内存相关的问题?

最近我开始使用Objective-C为iOS5设备编写代码。我全新的MacBook装有Xcode4.2和最新的Mac&iOSSDK。到目前为止,这是一次有趣的体验,但我发现文档和可用书籍的当前状态存在一个问题。具体来说,大多数书籍(尚未更新)总是提到如何以及何时管理您的内存。这很好,但是,当前的SDK/编译器包括自动引用计数,并且由于我在我的项目中启用了它,所以我不知道我应该亲自监控和管理什么。我有C#背景。C#(技术上,.NET)中的内存管理完全由框架垃圾收集器处理。我知道ARC实际上是一种编译器功能,可以自动在其所属的位置添加样板代码。此外,我试图发现我应该在哪里管理自己的对象释放

objective-c - 您如何使用 ARC 处理 'require( ..., bail)' 语句?

我正在查看SquareCaminApple'ssamplecode的一些示例代码.我想在使用ARC的现代项目中复制它的一些功能。但是,有大量的require语句,例如:BOOLsuccess=(destination!=NULL);require(success,bail);生成编译器错误:Gotointoprotectedscope.我的问题是——在使用ARC的项目中处理此类语句的合适方法是什么? 最佳答案 我遇到了同样的问题(使用相同的示例代码)。代码如下所示:BOOLsuccess=(destination!=NULL);re