草庐IT

autoreleased

全部标签

java - JOGL 没有自动释放池

我尝试将JOGL添加到我的项目中,在网上搜索了很长时间后我找到了解决方案。我将jars添加到我的构建路径中,Eclipse可以识别它们。我想测试一下,所以从这里获取了代码:https://sites.google.com/site/justinscsstuff/jogl-tutorial-2并编译。AWT方式给了我这个结果:2012-06-0318:20:44.623java[1481:903][JavaCocoaComponentcompatibilitymode]:Enabled2012-06-0318:20:44.626java[1481:903][JavaCocoaCompon

c++ - C++ 中的 Objective C "autorelease"——控制对象生命周期的标准方法?

我正在将一些代码从ObjectiveC移植到C++。我对C++设计模式的熟悉不如对ObjectiveC的熟悉。在Cocoa世界中,有一种非常常见的模式,即编写返回“自动释放”对象的工厂方法。一些简单的事情:-(MyClass*)load{MyClass*obj=[[MyClassalloc]init];return[objautorelease];}这个简单易懂。该方法拥有它分配的内存,但可以将其交还给调用者,同时放弃所有权。它不必知道或关心调用者对该内存做了什么。如果保留它,该对象将存活。如果完全忽略,内存将在当前调用堆栈展开后的某个时间释放。我在C++中有些惶恐地接近这个,因为它的

objective-c - 分析autorelease调用class_createInstance返回的对象报错

我正在将合作伙伴提供的代码添加到我的iOS项目中,该项目调用class_createInstance,然后在返回之前调用autorelease,如下所示:ClassfunctionClass=objc_getClass(functionName);NSObject*functionObject=class_createInstance(functionClass,0);[[functionObjectperformSelector:@selector(initWithDictionary:)withObject:msg]autorelease];在Xcode4.0.2中运行Analyz

ios - 以下 iOS 代码安全吗? (__autoreleasing 语义)

-(NSData*)jsonRepresentation:(NSError**error)error{NSDictionary*dict=[selfgetDictRepresentation];return[NSJSONSerializationdataWithJSONObject:dictoptions:nilerror:error];}//Someotherplace...NSError*__autoreleasingerror=nil;NSData*json=[objjsonRepresentation:&error];自动释放语义是否安全地将错误传送到我的第二个代码块?

iphone - 圆弧 "It is not safe to remove an unused autorelease message"

当转换到ARC时,我收到以下编译器错误:“删除未使用的自动释放消息是不安全的”。如果我简单地删除自动释放消息,obj将在getAutoreleasedObj结束时立即被释放,这将导致printObj崩溃。那么如何处理自动释放的对象,并将以下代码转换为ARC?-(MyClass*)getAutoreleasedObj{MyClass*obj=[[MyClassalloc]init];[objautorelease];returnobj;}-(void)printObj{NSLog(@"%@",[selfgetAutoreleasedObj];} 最佳答案

objective-c - autorelease 不允许编译代码

我正在尝试将旧代码转换为ARC代码。但是,我在以下行收到构建错误[[tokenretain]autorelease];我按以下顺序收到3个错误:-'autorelease'不可用:在自动引用计数模式下不可用-[rewriter]删除未使用的“autorelease”消息是不安全的;它的接收器可能会立即被销毁-ARC禁止'自动释放'的显式消息发送如果我删除这一行,代码就能正确编译 最佳答案 如果仅此而已,您可能只需将其删除即可。该代码声明对该对象的引用,但也表示您不想担心稍后释放,但使用ARC您不必担心它。我猜Xcode没有自动删除它

ios - 为什么在没有 @autoreleasepool 的 for 循环的每个循环中 NSString autorelease

这是我的测试代码:for(inti=0;i在ARC环境中,循环不会使内存爆炸。在我的例子中,运行这个循环只需要1.2MBRAM。但是在MRC中,除非使用@autoreleasepool代码块,否则循环会使内存爆炸。令我困惑的是有很多文章说当代码在for中时需要将代码放在@autoreleasepool中环形。但在这种情况下,没有@autoreleasepool也没关系。请帮我解决这个问题。谢谢。更新:如果我这样写代码:for(inti=0;i这段代码会导致ARC和MRC中的内存爆炸。为什么?stringWithFormat:还返回一个自动释放对象。我对此感到困惑...

ios - 弹出 UIViewController 后,MKMapView autorelease 不调用 dealloc

我在A类中有以下代码:UIViewController*vc=[selfviewControllerForItem:item];我的应用程序委托(delegate)中的viewControllerForItem方法返回基于我的项目的UIViewController,即vc=[[[MyCustomViewControlleralloc]init]autorelease];returnvc;然后我推送ViewController:[self.navigationControllerpushViewController:vcanimated:YES];我试图推送的这个VC是一个MKMapVi

ios - 将 'NSError *const __strong *' 发送到类型为 'NSError *__autoreleasing *' 的参数会更改指针的保留/释放属性

这个问题类似于iosNSErrortypes但是那里描述的解决方案没有用,我相信这不是我所需要的。我有一个执行异步调用然后调用完成block的方法。当我尝试将NSError**传递给完成block时,出现此错误:Sending'NSError*const__strong*'toparameteroftype'NSError*__autoreleasing*'changesretain/releasepropertiesofpointer代码如下:+(void)agentWithGUID:(NSString*)guidcompletion:(void(^)(AKAgentProfile*

objective-c - autorelease 与 dealloc 中的 release

我知道iOS中的内存管理对于像我这样的新手来说很棘手,但我希望在这里能得到关于stackoverflow的清晰解释,这是我在其他任何地方都找不到的。所以,假设我有一个属性/ivar@property(nonatomic,retain)UIPopoverController*popOver;我是这样分配的:self.popOver=[[[UIPopoverControlleralloc]initWithContentViewController:popOverContent]autorelease];现在,在我的dealloc和viewDidUnload方法中,我同时执行这两个操作//i