的NSDictionary总是[0]
我在我的代码此实现:的NSDictionary总是[0]
@implementation vcLogin {
Util *_Util;
NSInteger _RowCount;
NSDictionary *_Payload;
}
而在其他功能我试图填补的NSDictionary:
_Payload = [NSJSONSerialization JSONObjectWithData:tPayloadData options:kNilOptions error:nil];
但词典的价值总是[0]。
我已经测试此代码,看看它是否是工作:
NSDictionary *tPayload = [NSJSONSerialization JSONObjectWithData:tPayloadData options:kNilOptions error:nil];
而且tPayload返回2倍的值,我很期待。
我已经试过这样:
NSDictionary *tPayload = [NSJSONSerialization JSONObjectWithData:tPayloadData options:kNilOptions error:nil];
_Payload = [tPayload mutableCopy];
或者
NSDictionary *tPayload = [NSJSONSerialization JSONObjectWithData:tPayloadData options:kNilOptions error:nil];
_Payload = tPayload;
或者
NSDictionary *tPayload = [NSJSONSerialization JSONObjectWithData:tPayloadData options:kNilOptions error:nil];
[_Payload setValuesForKeysWithDictionary:tPayload];
我以前在一个古老的应用程序这样做,我几乎可以肯定,我有只是在实现中声明,并且字典一直为空,直到我填充它,如果我检查viewDidL中的值在我的老应用程序中,值为空,但在我的新应用程序中是[0]。
我不知道我在想什么。
感谢您的帮助。
编辑1:
我刚刚意识到,我在执行所有变量[0]当我停在viewDidLoad中的调试器。
@implementation vcLogin {
Util *_Util;
NSInteger _RowCount;
NSDictionary *_Payload;
}
旧的应用程序:
新的应用程序:
编辑2:
正如有人在commen指出我做了变量的NSLog,并充满了信息,也许我的Xcode有问题。
我打算继续,如果我发现Xcode的问题,我会发布一个答案。
感谢您的帮助。
“问题”仅仅是你想看看你的变量的方法的人工制品。您正在使用“工具提示”功能。这是一个非常棘手的特征,尤其是因为它的工作原理变量,甚至被赋予了价值之前 - 也就是说,它显示值,即使变量确实没有价值着呢,它显示的值废话。这正是你的问题:你在viewDidLoad
中暂停并使用工具提示,但这太快了:变量没有价值。
看变量值的可靠方法是老式的穴居人调试,也就是你的变量做一个的NSLog你确信该变量的值之后。
实际上,工具提示在我的“魔鬼工作的Xcode功能”清单中很高。我的建议是:不要使用它们。 – matt
在使用NSDictionary之前,您需要初始化它。在Objective-C,它的工作是这样的:
NSDictionary *dConfiguration = [NSDictionary alloc] init];
'NSJSONSerialization JSONObjectWithData'这是否对你来说,它返回一个初始化的对象,你并不需要分配或呼叫(这将只是简单地覆盖你分配一个)之前,其初始化。 – jcaron
尝试初始化_Payload然后使用它! Sory,是_Payload零? –
@ Mr.TI已尝试在viewDidLoad中_Payload = N11和之前和之后的零值[0] –
“而tPayload返回2倍的值,我很期待”请出示此的NSLog输出的实际,和还记录'_Payload'的NSLog输出。另外请显示更多的代码上下文 - 实际的NSLog,你正在做的所有这些的实际代码等等。不要尝试从调试器中的变量窗格中读取任何这些代码;使用NSLog并告诉我们你得到了什么。 – matt