2012-06-05 101 views
0

非常奇怪的问题。无法设置成员变量

我有以下代码:

NSDictionary* notificationUserInfo = [pNotification userInfo]; 
NSManagedObject* newShoppingFilter = [notificationUserInfo valueForKey:@"shoppingListFilter"]; 
self.shoppingListFilter = newShoppingFilter; 
NSLog(@"%@ tapped", [newShoppingFilter valueForKey:@"name"]); 

出于某种原因,self.shoppingListFilter = newShoppingFilter不设置变量。

我认为这是一些问题,没有以某种方式初始化self.shoppingListFilter变量,但我无法弄清楚。 NSLog显示正确的输出,newShoppingFilter不为null,但self.shoppingListFilter为。

任何帮助表示赞赏。

+0

如何在您的代码中最初声明'shoppingListFilter'?而且,'[notificationUserInfo valueFoeKey:@“shoppingListFilter”]'not null? – esqew

+0

也许我很笨,不知道objective-c是如何工作的,但我在属性my.h中声明了shoppingListFilter(强,非原子)NSManagedObject * shoppingListFilter;并在我的.m文件中进行合成。我不会初始化它可能是问题的任何地方。 @esqew – nazbot

+0

你是否综合了你的财产? – dtuckernet

回答

1

我打赌newShoppingFilter是零。最有可能的是,通知用户信息字典中没有键“shoppingListFilter”。

在为self.shoppingListFilter指定值并检查newShoppingFilter的值的行上设置断点。还显示notificationUserInfo的全部内容。

发布创建用户信息字典并将其传递到您要发布的通知的代码。这将有助于追踪问题。

+0

问题的主体说'NSLog()'显示'newShoppingFilter'是一个有效的对象。 –