Я изо всех сил пытаюсь понять, почему следующий код не показывает массив с каким-либо содержимым, когда я отлаживаю в XCode, и все же NSLog четко отображает содержимое, как GDB использует po?
- (IBAction)action: (id)sender {
NSMutableArray *btnTitles = [NSMutableArray arrayWithObject: @"Open in Safari"];
NSLog(@"%@",[btnTitles description]); // in xcode - btnTitles shows 0 elements, nslog shows 1?
if ([MFMailComposeViewController canSendMail]) {
[btnTitles addObject: @"Email Article"];
}
NSLog(@"%@, %i",[btnTitles description], [btnTitles count]); // in xcode still shows 0 items, nslog shows 2
Я использую Snow Leopard и Xcode 3.2.1 - и сначала я думал, что моя переменная освобождается, однако NSLog и использование GDB, похоже, указывают на то, что все в порядке. Однако, когда я наведите курсор на переменную btnTitles, она показывает - (переменная 0 объектов). Точно так же, если я делаю Open In Window для этой переменной, она имеет заголовок: btnTitles [(null) () - (null)] и показывает переменную, 0 объектов). Еще в консоли я вижу:
2009-12-20 14:29:03.352 MyApp[11125:207] (
"Open in Safari"
)
2009-12-20 14:29:05.499 MyApp[11125:207] (
"Open in Safari",
"Email Article"
), 2
Это поставило меня в тупик - код выглядит так, как будто все должно быть в порядке - я правильно инициализирую переменную (я тоже пытался сделать retain).
Может кто-нибудь заметить, что я делаю неправильно, или это ошибка в новом XCode на Snow Leopard?
Тим