-1

我的头文件中有这一行

@property (strong, nonatomic) NSMutableDictionary *weatherData;

我正在努力在我的实施中做以下事情

-(void)doSomething {

NSMutableDictionary *data = [[NSMutableDictionary alloc] init];

//after adding items to data
self.weatherData = data;

}

然后我有一个函数可以得到

-(NSMutableDictionary *)getWeaterData {
NSLog([self.weatherData description]);
return self.weatherData;
}

为什么要打印注释,上面的数据中有数据。

编辑

self.weather 数据被异步方法填充。这确实需要一段时间。所以当我使用 NSLog 时,它还没有被填充。这就是为什么什么都没有打印出来的原因:D

现在通过添加委托回调来解决所有问题

4

2 回答 2

4

我认为问题不在于您迄今为止共享的代码。您可能想尝试添加支持您的类属性的变量的“监视”(基本上,每次任何代码尝试更新该属性的值时,告诉调试器停止执行)。

如果你想这样做,你可以:

  1. 在你第一次设置你的属性之前在你的代码中添加一个断点;

  2. 在调试器中运行应用程序,使其在断点处停止;

  3. 通过control单击 Xcode 中“调试区域”中的“变量视图”中的变量来添加对变量的监视(在我的情况下,我会在objects属性上添加监视):

    在此处输入图像描述

  4. 点击“继续”按钮 ( 继续)) 继续执行程序。

然后,应用程序将在每次该属性更改时停止应用程序,因此您可以检查哪一行代码正在更改值并检查其他相关变量。如果调试器停在一些神秘的汇编代码处,请单击“跳出”按钮 ( 走出去),直到您看到一些您自己识别的代码。

也许“观看”可以帮助您识别正在设置和/或重置weatherData应用程序中的值的内容。

于 2013-08-26T15:14:06.703 回答
2

您在哪里调用 getWeaterData。我没有看到 U 对该方法进行任何调用。如果您认为访问 self.wetherData 隐式调用该方法是不正确的。它应该 -(NSMutableArray*) weatherData{ return _weatherData;}

不获取天气数据。我猜你实现它的方式会导致无限循环。

于 2013-08-26T15:48:34.670 回答