2013-02-13 75 views
0

我有下面的代碼問題爲什麼我無法在Xcode調試器變量窗口中查看字符串屬性的值?

mediaFile.artist = [track artist];    

if(mediaFile.artist == nil || [mediaFile.artist isEqualToString:@""]) 
{ 
    // value 'unknown' is not assigned , when I see in the debugger 
    mediaFile.artist = @"unknown"; 
} 

在類媒體文件的屬性藝術家deaclared像這樣

// In MediaFile class 
//property defined in MediaFile header 
@property (retain) NSString* artist; 

// in MediaFile.m file 
@synthesize artist = _artist; 

定義當[track artist]返回一個很好的價值是不是空的話,我可以請參閱mediafile.artist屬性中存儲的值,但當它返回nil或空指定的代碼@"unknown"運行時,指針更改爲mediafile.artist,正如我在調試器中注意到的,但值"unknown"不是vi錫布爾赫丁。有任何想法嗎?

編輯: PO [媒體文件的藝術家]可見的價值,但調試器變量窗口只顯示指針,而不是字符串值

+0

當你做'po [mediaFile artist]'時會發生什麼? – Chuck 2013-02-13 07:07:51

+0

不知道該怎麼做,我在看輸出左側顯示變量的窗口,是否需要將po [mediaFile artist]放在代碼中?或者一些調試器的交互式窗口?我是新的客觀c – Ahmed 2013-02-13 07:11:06

+0

它返回正確的值 - 0x000000010000955未知但爲什麼不顯示在變量窗口? - – Ahmed 2013-02-13 07:15:40

回答

0

屬性未明確由高德的支持不會在調試器中顯示。如果你需要看到他們,你可以顯式聲明伊娃在.h文件中,就像這樣:

@interface MyClass : NSObject { 
    NSString* _artist; 
} 

然後,聲明你的@property和合成它像往常一樣。它應該出現在調試器中。

+0

嗯,我要去嘗試一下,但有一件事是肯定的,如果在我的代碼示例[曲目藝術家]返回一個非空值,那麼它確實顯示在調試器。只有在文字被分配後纔會顯示 – Ahmed 2013-02-13 07:26:46

+0

否您的建議方法不起作用 – Ahmed 2013-02-13 07:31:29

相關問題