草庐IT

fno-objc-arc

全部标签

ios - "Redefenition of ' 类别 ' as a different kind of symbol"并与 Objc 运行时类名冲突

我有一个Objective-C类:@interfaceCategory:NSObject{//...}一切都很好,我已经在3个不同的项目中使用了这个类(class),没有任何问题。一旦我决定为一个项目创建测试目标。然后奇怪的事情发生了:编译器拒绝编译并出现这个错误:Redefenitionof'Category'asadifferentkindofsymbol它还指向runtime.h与typedefstructobjc_category*Category;嗯,这是合理的。但是,我不明白为什么它之前允许我使用这个类,原始目标和测试目标之间有什么区别。我检查过Deploytarget,i

ios - 德尔福 + iOS : How to declare simple ObjC-Class?

如何在Delphi/Firemonkey(XE5或XE6)中声明一个简单的ObjC类?我想在此类中创建一个带有一些委托(delegate)方法的动画委托(delegate)类。谢谢! 最佳答案 使用您的方法创建接口(interface)并从IObjectiveC派生。同时创建一个向导。我不会在这里发布,以免有人想使用我的。ISampleDelegate=interface(IObjectiveC)['{put-your-own-guid-here}']//创建您的委托(delegate)实现并从TOCLocal派生。它应该实现您的委

ios - ARC 是否消除了对临时变量的需要?

在没有启用ARC的情况下,我们编写NSArray*items=[[NSArrayalloc]initWithObjects:@"a",@"b",@"c",@"d",nil];self.allItems=items;[itemsrelease];我只是想知道我们是否可以像这样在启用ARC的情况下走捷径:self.allItems=[[NSArrayalloc]initWithObjects:@"a",@"b",@"c",@"d",nil];我们可以在使用ARC时消除items吗?最佳做法是什么? 最佳答案 是的,您展示的第二个示例在A

c# - ObjC 与 MonoTouch float 和数组性能

编辑:添加了unsafeC#代码的版本。谢谢大家的建议,unsafeC#代码运行速度更快,但只有大约3%。精简版:我用C#和Objective-C编写了一些基准代码,并在iPad3上对其进行了测试。MonoTouch/C#版本需要的执行时间比之前多50%-150%Objective-C中的相同代码。这是我的问题:我可以编写比我用于基准测试的代码执行速度更快的C#代码吗(见下文),或者这是由某些固有的MonoTouch/Obj-C差异引起的?长版:我刚刚为计划中的多平台游戏编写了一个小原型(prototype)。将游戏核心从Windows/.NET移植到iPad3/MonoTouch后,

ios - 使用 block 、集合和 ARC 时发生泄漏

我试图理解为什么这段代码会泄漏,使用ARC:-(IBAction)block2:(id)sender{NSMutableString*aString=[[NSMutableStringalloc]init];void(^aBlock)()=^{NSMutableString__unused*anotherString=aString;};NSMutableDictionary*dict=[NSMutableDictionarydictionaryWithObject:aBlockforKey:@"Key"];}如您所见,我将一个block放在一个集合中(NSMutableDiction

iphone - iOS/iPhone ARC 内存管理

__weakNSString*strin=[[NSStringalloc]initWithFormat:@"hey"];NSLog(@"weak%@",strin);//returnsweak(null)__weakNSString*strin=@"hey";NSLog(@"weak%@",strin);//returnsweakhey这两个片段之间有什么区别。为什么第二个在分配weak时返回值? 最佳答案 这是因为@"hey"是一个常量字符串文字,它将永远存在,而对第一个(分配的)字符串的弱引用不足以使其保持事件状态。

objective-c - 将旧的 Objective-C 代码转换为 ARC(自动引用计数)的问题

我正在尝试将以前没有ARC的Objective-C代码转换为ARC。我正在使用Xcode中的程序:文件>编辑>重构>转换为ARC。但我无法转换它,因为它会产生很多错误。我搜索了这个;我正在尝试更改XcodeTarget中的build设置。 最佳答案 ConverttoARC工具并不是让您的项目突然准备好ARC的Elixir。该工具的作用是删除对release和retain之类的所有调用,它还可以负责将一些autorelease池切换到新的@autorelease{}风格。在它执行任何这些操作之前,它会运行一个飞行前脚本来查找太复杂以

iphone - ARC 和可变参数导致 BAD_ACCESS

我正在浏览一个可变参数列表,当我到达列表中的最后一个对象时,我总是会收到BAD_ACCESS错误。我强烈认为它是ARC相关问题。这是我的做法:-(NSString*)replaceTokensWithStrings:(NSString*)firstKey,...{va_list_arguments;va_start(_arguments,firstKey);for(NSString*_currentArgument=firstKey;_currentArgument!=nil;_currentArgument=va_arg(_arguments,NSString*)){NSLog(@"

ios - iOS 设备上 ObjC 对象的安全释放

对象被释放时会发生什么?是所有的内存都被抹去,还是痕迹还在?如果我理解正确,应用程序的内存会在退出事件状态时保存到闪存中。假设一个足智多谋的黑客能够读出这个内存。如果内存没有被某些东西覆盖,理论上他有时是否能够读出释放的NSString的内容? 最佳答案 不要将安全数据存储在ObjectiveC数据类型中。它们是不透明的数据类型,每次您尝试清除某些部分时,都可能会在内存中制作和/或留下大量数据副本。补充:Swift数据类型似乎也是如此,包括结构、数组和字符串。它们是不透明的,因此谁知道DRAM中可能会留下多少数据副本。使用非不透明的

objective-c - 这些符号 (-fno-objc-arc) 是什么意思?

我在我的项目中混淆了一些代码,既应用了ARC的编码风格,又有些不是。然后我遇到了一个设置一些符号或标志的解决方案:-fno-objc-arc我的问题是,这些标志是什么?这些符号是什么意思-fno-objc-arc?还有这些吗? 最佳答案 -fno-objc-arc标志用于编译器,不适用于链接器。它告诉编译器您的ObjectiveC代码将手动执行所有释放和保留。这是必要的,因为新添加的ARC模式prohibitsexplicituseofretain,release,autorelease,dealloc,andsoon;您甚至无法通