Tag: 保留

有没有办法“find神秘的保留”…?

最近我正在修复某人的代码。 有一个大class不会释放。 你必须用5或6个版本才能达到dealloc。 我仔细看了看大class,最终find了需要发布的各种东西。 这让我想到: 只需要一些非常简单的方法来“find”对象上的所有保留对象 。我是对的吗? 那么,有没有一种简单的方法来“find所有的保留”在一个对象上? XCode或乐器中是否有其他人都知道的button? 当你找不到一个神秘的东西时,你会怎么做呢? 因此,在iOS的宇宙中,如果有人知道“显示所有的保留来自这个对象”button – 谢谢! PS请注意,没有泄漏,这个问题是完全无关的泄漏。 对象只是“完全正确”不会释放。 稍后.. 法比奥真正惊人的解决scheme: 法比奥提供了一个惊人的解决这个问题。 用九个字来表示: -(id)retain { NSLog(@"%@", [NSThread callStackSymbols]); return ([super retain]); } 这在许多情况下是非常有用的,并导致许多其他有用的事情。 法比奥,你可能永远每年为我节省了两个人工周。 谢谢! 顺便说一句,如果你刚刚掌握了这一点,并努力与输出,我看到通常会有许多“UINib instantiateWithOwner:”块。 看起来这些会先来,重要的块将跟随。

如果我不保留IBOutlet会怎么样?

如果我这样做: @interface RegisterController : UIViewController <UITextFieldDelegate> { IBOutlet UITextField *usernameField; } 而不是这个: @interface RegisterController : UIViewController <UITextFieldDelegate> { UITextField *usernameField; } @property (nonatomic, retain) IBOutlet UITextField *usernameField; 会发生什么事情吗? 我知道在第二种情况下,领域是保留,但是这是否因为笔尖拥有领域而有所不同? 没有保留,场地会消失吗? 在什么情况下? 在第一个案例中的代码工作,想知道这是否是一个问题在内存pipe理方面。

代表的非保留数组

在Cocoa Touch项目中,我需要一个特定的类不仅有一个委托对象,但其中有很多。 看起来我应该为这些代表创build一个NSArray; 问题是,NSArray将保留所有这些代表,而不应该(通过约定的对象不应该保留他们的代表)。 我应该写我自己的数组类,以防止保留或有更简单的方法? 谢谢!

Objective-C 101(保留vs指定)NSString

101个问题 比方说,我正在制作汽车数据库,每个汽车对象被定义为: #import <UIKit/UIKit.h> @interface Car:NSObject{ NSString *name; } @property(nonatomic, retain) NSString *name; 为什么是@property(nonatomic, retain) NSString *name; 而不是@property(nonatomic, assign) NSString *name; ? 我明白, assign不会像retain那样增加参考计数器。 但是,为什么使用retain ,因为name是todo对象的成员,其范围是本身。 没有其他的外部function会修改它。

修复警告“在此块中强烈捕获很可能导致启用ARC的代码中的保留周期”

在启用ARC的代码中,如何在使用基于块的API时解决有关潜在保留周期的警告? 警告: Capturing 'request' strongly in this block is likely to lead to a retain cycle 由这段代码产生: ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:… [request setCompletionBlock:^{ NSDictionary *jsonDictionary = [[CJSONDeserializer deserializer] deserialize:request.rawResponseData error:nil]; // … }]; 警告与在块内使用对象request相关联。

多less次我释放分配或保留的对象?

我正在做一个iPhone游戏。 我想释放已分配或保留的所有对象。 在dealloc函数中,我释放了所有这样的对象,但是后来我意识到有时候我还没有分配对象时就会释放对象。 所以我想我需要检查其retainCount是否大于零或不释放它之前。 我的问题是: 我只是检查如果retainCount大于零,然后释放它? if([bg retainCount]!=0) { [bg release]; } 要么 我应该释放它多less次的retainCount while([bg retainCount]!=0) { [bg release]; } 谢谢你的帮助!

与ARC的@属性定义:强或保留?

使用Xcode 4.2和ARC,我注意到NSManagedObject的自动生成的代码仍然读取像这样的属性: @property (nonatomic, retain) NSString * someString; 1)现在不应该retain weak吗? 2)为什么自动生成的代码仍然使用retain 3)什么是在这个财产声明retain正确的替代? 我目前正在使用NSFetchRequestdebugging一个问题,我认为这可能是问题的根源。 思考?

在这个区块强烈地捕获自我很可能会导致一个保留周期

我怎样才能避免在xcode这个警告。 这里是代码片段: [player(AVPlayer object) addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(0.1, 100) queue:nil usingBlock:^(CMTime time) { current+=1; if(current==60) { min+=(current/60); current = 0; } [timerDisp(UILabel) setText:[NSString stringWithFormat:@"%02d:%02d",min,current]];///warning occurs in this line }];

何时访问属性与“自我”

我已经阅读了这个网站上关于这个问题的一些问题,我理解如下: self.property访问手动创build或通过@synthesize创build的getter / setter方法。 取决于属性是否被声明为保留,复制等,保留计数被正确修改,例如保留属性,释放先前赋值为“保留”的新值,并将保留计数递增1。 属性通常使用相同名称的实例variables来声明(如果您手动进行赋值,可能会有所不同)。 这通常是因为@synthesize生成的访问器使用实例variables来引用内存中的对象,然后执行相关的命令。 我的问题是基于这样的事实,在很多例子中,self.property和property在不同的事情上可以互换使用,而且我在判断规则时遇到了麻烦。 “苹果文档”中的“食谱”示例应用程序中的一个示例具有以下内容: self.navigationItem.title = recipe.name; nameTextField.text = recipe.name; overviewTextField.text = recipe.overview; prepTimeTextField.text = recipe.prepTime; 和… self.ingredients = sortedIngredients; 每个属性都具有相同名称的相关私有实例variables。 所有的都是用“非primefaces的,保留的”属性以相同的方式声明的。 每个都释放dealloc … 然而,“成分”是通过自我访问和“prepTimeTextField”直接访问。 访问方法不同的原因是什么? 如果我正在访问视图的代表呢? 或者是一个核心数据对象,它被前一个视图控制器作为保留属性传递给视图控制器? 非常感谢

将表单提交给Servlet后,如何在JSP中保留HTML表单字段值?

在从HTML提交数据之后,servlet将这些数据添加到我的数据库,并将结果消息转发到JSP页面。 我想在转发之后保留最初提交的值。 在servlet中创build一个对象并添加所有我收到的参数并发送请求到JSP是否明智? 还有更好的方法吗?