[英]is it OK to retain a variable passed by value in objective-c?
在 objective-c 中保留按值傳遞的變量是否可以?
也就是說:
問題 - 那么這個 controller 2 變量是否可以使用“保留”設置,並在“dealloc”方法中“釋放”並設置為零? 那它不會影響 controller 1 的 object 嗎? 例如,如果 controller 2 被釋放並且“release”和“=nil”被擊中,會發生什么情況,這會影響 object,因為它仍然被 Z594C103F2C6E04C3D8AB059F031E0 使用。
Controller 2 代碼提取
@interface SelectorController : UITableViewController {
Config *_returnObject;
}
@property (nonatomic, retain) Config *returnObject;
@end
// implementation
@synthesize config;
- (void)dealloc
{
[config release]; config = nil;
[super dealloc];
}
視情況而定,您可以在 View Controller 2 中保留變量。因為每個 controller 都將負責他們的變量。 相反,如果您分配變量,即使您在第二個 controller 中使用該變量,它也將是第一個 controller 的負責人。
保留和釋放 controller 2 中的變量非常好,這是你應該做的。 :)
在 controller 2 中將變量設置為nil
,只會將變量設置為 nil,而不是變量指向的內容,因此您的 object 仍將存在 Z594C103F2C6E04C3D18AB059F031 中的變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.