我想用UITextFields中的文本填充NSDictionary。这是我尝试的
[self delegate]populate:[NSDictionary dictionaryWithObjectsAndKeys:
[self.username.text], @"username",
[self.password.text], @"password"
nil];
但我得到了预期的标识符。 这有什么不对?为什么不能直接传递[self。*]?
我也试过
[self delegate]populate:[NSDictionary dictionaryWithObjectsAndKeys:
[NSString stringWithFormat:@"%@", [self.username.text]], @"username",
[NSString stringWithFormat:@"%@", [self.password.text]], @"password"
nil];
仍然无法正常工作
答案 0 :(得分:3)
[self.username.text]
语法无效。
消息发送语法为[object message]
。点语法为object.property
。由于属性访问通常会产生对象,因此您可以将它们组合在一起,但仍然需要有一个消息部分。如果您只是将点语法放在括号中,那么您将错过消息部分:[object.property <missing message>]
。
将其更改为self.username.text
(无括号)或[self.username text]
。
正如bdesham指出的那样(我认为这只是一个错字),你在整个片段周围都缺少括号。 [self delegate]
是您要向其发送邮件的对象populate
:
[[self delegate] populate:<another message send here, to NSDictionary>];
答案 1 :(得分:1)
试试这个:
[[self delegate] populate:[NSDictionary dictionaryWithObjectsAndKeys:
[self.username.text], @"username",
[self.password.text], @"password"
nil]];
您似乎在整个邮件中遗漏了[ ]
!