0

我在使用以下代码时遇到问题

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";
}

MediaFile 类中的属性 artist 被声明和定义如下

// 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"不是可见的。有任何想法吗?

编辑: po [mediaFile artist] 显示值,但调试器变量窗口仅显示指针而不显示字符串值

4

1 回答 1

0

没有明确支持 ivars 的属性不会显示在调试器中。如果需要查看它们,可以在 .h 文件中显式声明 ivar,如下所示:

@interface MyClass : NSObject {
    NSString* _artist;
}

然后,@property像往常一样声明并合成它。它应该出现在调试器中。

于 2013-02-13T07:25:36.117 回答