ios - 调试问题 - 值被隐藏

标签 ios objective-c debugging nscoder nsarchiving

我需要了解是什么导致了我的问题。我有一个源代码,我想对其进行一些调试,但我看不到变量。

例如:

NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSavedArray];
NSLog(@"The content of oldSavedArray is%@",oldSavedArray);

我明白了:

2015-05-04 11:06:28.275 MobilePocket[59803:12619613] The content of oldSavedArray is(
    "<MPCheckedCurrency: 0x7f9903b21090>",
    "<MPCheckedCurrency: 0x7f9903b20fc0>",
    "<MPCheckedCurrency: 0x7f9903b21130>",
    "<MPCheckedCurrency: 0x7f9903b21170>",
    "<MPCheckedCurrency: 0x7f9903b21510>",
    "<MPCheckedCurrency: 0x7f9903b21190>"
)

或者为此:

 NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
    NSData *dataRepresentingSavedArray = [currentDefaults objectForKey:currencyCheckedArrayKey];

我得到这样的东西:

(lldb) po dataRepresentingSavedArray
<62706c69 73743030 d4010203 0405064d 4e582476 65727369 6f6e5824 6f626a65 63747359 24617263 68697665 72542474 ...etc

可能是这个问题:

@implementation MPCheckedCurrency

@synthesize currencyCode;
@synthesize currencyValue;

- (void)encodeWithCoder:(NSCoder *)coder;
{
    [coder encodeObject:currencyCode forKey:currencyCheckedCodeKey];
    [coder encodeObject:currencyValue forKey:currencyCheckedValueKey];
}

- (id)initWithCoder:(NSCoder *)coder;
{
    self = [super init];
    if (self != nil)
    {
        self.currencyCode = [coder decodeObjectForKey:currencyCheckedCodeKey];
        self.currencyValue = [coder decodeObjectForKey:currencyCheckedValueKey];
    }
    return self;
}

如何查看数组的内容? 任何帮助将不胜感激!

最佳答案

您正在使用 [NSObject description]这些对象中的每一个的方法,它返回一个字符串,无论它认为在这种情况下使用时可能有用。有时它根本没用。

要解决此问题,请在 MPCheckedCurrency 对象中实现 description:

- (NSString *)description
{
    return [NSString stringWithFormat:@"[currenyCode=%@, currencyValue=%@]", currencyCode, currencyValue];
}

(您可能还需要在 currencyCodecurrentValue 对象中实现 description

关于ios - 调试问题 - 值被隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30025664/

相关文章:

ios - UIBarButtonItem : How can I find its frame?

python - Python 中的 IndexError(初学者)

ios - 未使用 iBeacon Simulator 调用 CLLocationManager 委托(delegate)方法

ios - 仅使用此日志信息,如何知道我的应用程序在哪里崩溃?

objective-c - 如何/是否模拟 UINavigationController pushToViewController 方法

iphone - 不调用自定义 UIButton 的操作

ios - 如何为不同屏幕设置自动调整文本大小

ios - ViewControllers 使用的类的命名模式并包含业务逻辑

java - 如何在 Java 调试详细信息格式化程序中将字节数组显示为字符串?

perl - 修复 Perl 调试器