我正在尝试在两个类之间传递NSMutableDictionary对象。我尝试添加一个返回字典的方法无济于事。
-(NSMutableDictionary*) getResponse
{
return response; //where response is a dictionary that has keys and objects assigned
}
但即使这样,字典也无法从其他类中拉出来;它返回“null”。
答案 0 :(得分:2)
我尝试添加一种无法恢复的方法。
-(NSMutableDictionary*) getResponse { return response; }
那是因为这个方法返回一个字典。对于返回自身的方法,它必须向对象self
询问其方法选择器的实现,或者要求Objective-C运行时返回Method
结构。
但这不是你真正想做的事,是吗?
如果你的意思是这个方法返回响应字典,那就是它的确如此。这是正确的(除了它的名字,正如我已在我对该问题的评论中所解释的那样)。
......但即使这样,也无法从其他类中提取数据;
该方法不声称返回数据对象;它声称返回一个字典对象。如果它确实返回了一个数据对象,那将是一个错误。
...它返回无效。
不,它返回NSMutableDictionary *
。 void
是一种类型;没有其他背景,这是有道理的。
如果你的意思是它返回nil
(指向没有对象的指针),那么这意味着你没有要返回的响应字典。在具有响应之前,不要询问此对象。
您可能希望使想要响应的对象成为保存响应的对象的委托,并让响应持有者在响应进入时向其委托发送消息。您甚至可以在其中包含响应信息;替代方案是响应持有者只传递自己,并且委托在其委托方法的实现中向响应持有者询问响应字典。
更多信息:
答案 1 :(得分:0)
如果您的方法返回nil,那是因为您的response
变量为零。在这一点上可能没有初始化。尝试在getResponse方法中执行NSLog(@"Response: %@", response);
。查看控制台是否打印(null)或有效的NSMutableDictionary对象。