我想显示属性myarray的内容,来自以下单例:
[Session sharedManager].myarray
我试过这些:
po [Session sharedManager]. myarray
po [[Session sharedManager] myarray]
但总是会收到此错误:
A syntax error near end of expression.
有什么建议吗?
---编辑---
我正在使用SDK 3.0。
我发现了这个问题,我有三个开放式括号而不是两个。你在这里看不到,因为我错误地输入了括号的数量。它现在正在运作。感谢。
答案 0 :(得分:2)
如果您使用XCode调试器并在某个位置设置断点,该变量已经初始化并且可以看到,则可以单击该变量并选择“打印描述”。
您可以像NSLog()那样以简单的方式完成。这种方法有什么问题?通常,我看到它会打印出数组中所有对象的所有description()方法吗?
我不确定,但在声明结尾处你没有分号。 “;”,你可以重新检查一下吗?
答案 1 :(得分:1)
你所描述的是非常奇怪的。我设置了一个测试应用程序,并且能够从单例中打印对象就好了。
#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中:
(gdb) po [[Session sharedSession] myArray]
<NSCFArray 0x4710630>(
A,
B,
C
)
我使用3.2 iPhone SDK,使用默认项目模板,在调试模式下执行此操作,而不更改任何构建设置。我怀疑您的构建设置可能存在问题。我注意到4.0 beta版的调试是不可思议的。如果你使用4.0,请记住它仍然是测试版,你的问题可能真的是别人的问题。