Tag: retaincount

当它指向一个文字时,我应该保留NSString吗?

if (url_leng) { NSString *open_string; if (g_system_status.language_code == 0) open_string = @"Open"; else if (g_system_status.language_code == 1) open_string = @"Abrir"; [open_string retain]; [alert addButtonWithTitle : open_string]; g_scan_result = targ_url; } 考虑上面的代码段。 我的问题是关于“保留”声明。 不知何故,我需要保留声明,使代码工作。 我唯一的解释是,当open_string超出范围时,会发起一个释放调用。 因此需要保留电话来保持价值。 希望有人能证实这一点… 还想问在条件块之后是否需要释放语句的string? 更新:(通过阅读您的善意build议和宝贵的见解) 已经尝试了下面的修改: if (url_leng) { if (g_system_status.language_code == 0) [alert addButtonWithTitle : @"Open"]; else if (g_system_status.language_code == 1) […]

iOS关于retainCount

现在我有一个ClassA : NSObject ,然后在viewcontroller viewDidLoad ,看下面的代码: – (void)viewDidLoad { ClassA *a = [[ClassA alloc] init]; NSLog(@"a retainCount = %d", [a retainCount]); ClassA *b = a; NSLog(@"a retainCount = %db retainCount= %d ", [a retainCount],[b retainCount]); [a release]; NSLog(@"a retainCount = %db retainCount= %d", [a retainCount],[b retainCount]); [super viewDidLoad]; } 控制台输出如下所示: 2012-11-02 14:43:35.437 RetainCountTest[1043:207] a retainCount […]

RetainCount确定在这种情况下使用?

保留计数== BAD retainCount是禁忌,不可靠,不可预知的,一般不应该使用。 我不会在代码中的任何地方使用它,但是我以一种有趣的方式在一个类中看到了它。 我有一个类运行一个线程,无限期地运行,直到线程被取消。 问题是线程增加了所有者的保留计数,在我的例子中是实例化它的类。 所以,即使我已经完成了这个课程,那么这个例子还是会继续存在下去,除非pipe理我的课程的人也知道closures这个线程。 这是一个解决scheme,但这是我在代码中find的。 – (oneway void)release { // This override allows allows this object to be dealloced // by shutting down the thread when the thread holds the last reference. // Otherwise, the object will never be dealloc'd if (self.retainCount == 2) { [self quitDispatchThread]; } [super release]; } 这是一个聪明的解决scheme,但我不知道该怎么想。 […]

为什么retainCount = 2 – 发布后?

我使用这个代码。 – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. view = [[UIView alloc] init]; [_window addSubview:view]; [view release]; NSLog(@"count – %d", [view retainCount]); [self.window makeKeyAndVisible]; return YES; } – (IBAction)click{ NSLog(@"count – %d", [view retainCount]); } 当我点击uibutton – 我的观点保留count = 2。为什么发生这种情况?