1

在 iOS 上,“协议”是

        id foo = [[SomeClass alloc] init]
        [foo release]

应该创建一个 retainCount 为 1 的对象“foo”,以便发布将释放它。

下面在 iOS5 上的代码将产生 3 的 retainCount。

TWTweetComposeViewController *twController = [[TWTweetComposeViewController alloc] init];
log_trace(@"twController (after construction) retain count %d", [twController   retainCount]);

问题是在向应用程序发出内存警告期间将崩溃

*** Terminating app due to uncaught exception 'NSRangeException', reason: 'Cannot remove an observer <TWTweetComposeViewController 0x82a3980> for the key path "contentSize" from <UITextView 0x13f2e760> because it is not registered as an observer.'

我已经检查了 iOS6 beta 1 版本,并且此行为已修复(崩溃也是如此)。

这就引出了一个问题:有没有办法在 iOS5.1 中以某种方式绕过这个问题?

4

0 回答 0