Как отобразить сложный объект в отладчике? - PullRequest
1 голос
/ 18 мая 2010

Я бы хотел отобразить содержимое свойства myarray из следующего синглтона:

[Session sharedManager].myarray

Я пробовал это:

po [Session sharedManager]. myarray

po [[Session sharedManager] myarray]

но всегда получаю эту ошибку:

A syntax error near end of expression.

Есть предложения?

--- РЕДАКТИРОВАТЬ ---

Я работаю с SDK 3.0.

Я обнаружил проблему: у меня было три открытых скобки, а не две. Вы не можете видеть это здесь, потому что я набрал количество скобок. Это работает сейчас. Спасибо.

Ответы [ 2 ]

2 голосов
/ 18 мая 2010

Если вы используете XCode Debugger и устанавливаете точку останова в том месте, где переменная уже инициализирована и ее можно увидеть, вы можете щелкнуть по ней и выбрать «Print Description».

Вы можете сделать это простым способом, как NSLog (). В чем проблема с этим подходом? Обычно я вижу, что он распечатает все методы description () всех объектов в массиве?

И я не уверен, но у вас нет точки с запятой в конце утверждения. ";", вы можете перепроверить для этого?

1 голос
/ 18 мая 2010

То, что вы описываете, очень странно. Я настроил тестовое приложение и смог отлично распечатать объект из синглтона.

#import "testAppDelegate.h"

//A Session Singleton
@interface Session : NSObject {
    NSArray *myArray;
}
@property (nonatomic, retain)   NSArray *myArray;
@end

@implementation Session
@synthesize myArray;
static Session *sharedSession;
+(Session *)sharedSession {
    if (!sharedSession) {
        sharedSession = [[Session alloc] init];
        sharedSession.myArray = [NSArray arrayWithObjects:@"A",@"B",@"C",nil];
    }
    return sharedSession;
}
@end


//App Delegate
@implementation testAppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    NSLog(@"%@",@"Breakpoint Here"); //Here is where I set My breakpoint
    return YES;
}


- (void)dealloc {
    [super dealloc];
}

@end

В ГБД:

(gdb) po [[Session sharedSession] myArray]
<NSCFArray 0x4710630>(
A,
B,
C
)

Я сделал это с помощью iPhone SDK 3.2, используя шаблон проекта по умолчанию, в режиме отладки без изменения каких-либо настроек сборки. Я подозреваю, что у вас могут быть проблемы в настройках вашей сборки. Я заметил, что на 4.0 бета-версиях SDK отладка не удалась. Если вы используете 4.0, помните, что это все еще бета-версия, и ваши проблемы действительно могут быть чьими-то проблемами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...