在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中以某种方式解决这个问题?