Iphone NSlog为来自不同类的NSMutableDictionary返回NULL

Iphone NSlog为来自不同类的NSMutableDictionary返回NULL,iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,真的很困惑为什么这不起作用 实践团队选择 NSLog(@"Practice Roster : %@", practiceRoster); 实战 PracticeTeamSelection *teamSelectionViewController = [[PracticeTeamSelection alloc]init]; NSLog(@"practice List : %@", [teamSelectionViewController practiceRoster]); 因此practic

真的很困惑为什么这不起作用

实践团队选择

NSLog(@"Practice Roster : %@", practiceRoster);
实战

PracticeTeamSelection *teamSelectionViewController = [[PracticeTeamSelection alloc]init];

NSLog(@"practice List : %@", [teamSelectionViewController practiceRoster]);
因此practiceRoster是一个NSMutableDictionary,当我运行第一位代码时,返回的正是我应该返回的代码,但是当我在PracticeActual.m中运行下一位代码时,返回(Null)

在我的实践中,在.h中选择团队时,我使用适当的方法执行以下操作:

@property(nonatomic,retain) NSMutableDictionary *practiceRoster;
在实际操作中,我会包括

#import "PracticeTeamSelection.h"
但也许它是在我不知情的情况下发布的。有人有什么想法吗



谢谢

您实际上还没有在任何地方创建词典。您刚刚定义了一个属性。对象上的所有属性都以其零值开始-对于对象,这是零。

您实际上还没有在任何地方创建字典。您刚刚定义了一个属性。对象上的所有属性都以零值开始-对于对象,这是零。

您有一个PracticeTeamSelection对象,其中PracticeOster设置为某个值。但在PracticeActual类中,当您编写
[[PracticeTeamSelection alloc]init]
时,您正在创建另一个PracticeTeamSelection对象。新对象与另一个设置了practiceRoster的对象无关,就像所有NSString对象都具有相同的内容一样。

您有一个PracticerTeamSelection对象,其中practiceRoster设置为某个值。但在PracticeActual类中,当您编写
[[PracticeTeamSelection alloc]init]
时,您正在创建另一个PracticeTeamSelection对象。新对象与另一个设置了practiceRoster的对象无关,就像所有NSString对象都具有相同的内容一样。

您是否在PracticeTeamSelection的
init
方法中设置了
practiceRoster
。m?不,我没有,是吗?同样,通过init方法,viewdidload是否可以接受?可能。但这就是为什么结果是
NULL
。字典已分配并初始化,但未设置任何内容。在PracticeTeamSelection的.h中,我不使用NSMutableDictionary*practiceRoster;和@property(非原子,保留)NSMutableDictionary*实践者;你能给我一个如何“设置”practiceRoster的例子吗?你是否在PracticeTeamSelection.m的
init
方法中设置了
practiceRoster
?同样,通过init方法,viewdidload是否可以接受?可能。但这就是为什么结果是
NULL
。字典已分配并初始化,但未设置任何内容。在PracticeTeamSelection的.h中,我不使用NSMutableDictionary*practiceRoster;和@property(非原子,保留)NSMutableDictionary*实践者;你能给我一个如何“设置”practiceRoster的例子吗?嗯,那么我该如何编写代码,让我找到PracticeTeamSelection类中的practiceRoster呢?@James Dunay:这完全是你的程序的结构问题。如果它们在同一个笔尖上,你只需要在它们之间画一个连接。如果他们都知道某个公共对象(例如,应用程序委托或当前文档),您可以将该对象作为中介。如果有某个对象同时了解这两个方面,那么你可以让该对象将它们连接起来。嗯,那么我该如何编写代码,让我找到PracticeTeamSelection类中的practiceRoster呢?@James Dunay:这完全取决于你的程序是如何构造的。如果它们在同一个笔尖上,你只需要在它们之间画一个连接。如果他们都知道某个公共对象(例如,应用程序委托或当前文档),您可以将该对象作为中介。如果有某个对象同时了解这两个方面,你也可以让该对象将它们连接起来;和@property(非原子,保留)NSMutableDictionary*实践者;你申报了字典。你根本没有创造任何东西。本质上,你现在有一个字典形状的空位。您需要通过实际将字典放入其中来填充它,例如,
self.practiceRoster=[NSMutableDictionary]。这通常在
-init
方法中完成。但是我创建了一个字典,在.h中,我有以下NSMutableDictionary*practiceRoster;和@property(非原子,保留)NSMutableDictionary*实践者;你申报了字典。你根本没有创造任何东西。本质上,你现在有一个字典形状的空位。您需要通过实际将字典放入其中来填充它,例如,
self.practiceRoster=[NSMutableDictionary]。这通常在
-init
方法中完成。