这一直是我的香蕉!我正在尝试让我的应用程序向用户的Facebook提要发布消息,并在从iOS中的placesPicker选择本地地点后登录到facebook Place。
我已经完成了测试中的所有工作,这意味着当我只为NSMutableDictionary的所有postParams输入字符串值时,它就完美地发布了。例如:
self.postParams =
[[NSMutableDictionary alloc] initWithObjectsAndKeys:
@"I am doing XYZ", @"message",
@"123456abc",@"tags",
@"123456xyz,@"place",
nil];
以上postParams在发布到Feed时效果很好,它会显示消息,然后检入“地点”ID,并表示您使用“标签”中的用户ID。问题是我真的从Facebook SDK的placePicker获得Place ID。我已经完成了拾取器设置并且工作正常,但我无法弄清楚如何用拾取的地方的id替换硬编码的@“123456xyz”。
这是我现在所拥有的:
self.postParams =
[[NSMutableDictionary alloc] initWithObjectsAndKeys:
@"I am doing XYZ", @"message",
@"123456abc",@"tags",
self.selectedPlace.id,@"place",
nil];
self.selectedplace.id成功包含Place的id,当我在控制台中使用debug / NSLog打印它时,它正确保存该值。但是当我尝试在选择一个地方后发布这个,我得到“错误:domain = com.facebook.sdk,code = 5”
以下是self.selectedPlace的定义方式。合成:
@property (strong, nonatomic) NSObject<FBGraphPlace> *selectedPlace;
...
@synthesize selectedPlace = _selectedPlace;
...
[placePicker presentModallyFromViewController:self
animated:YES
handler:^(FBViewController *sender, BOOL donePressed) {
if (donePressed) {
self.selectedPlace = placePicker.selection;
}
}];
所以,总结一下我的问题:我怎样才能成功地将存储在self.selectedPlace.id中的Place ID存入postParams字典中,以便可以成功解释它&amp;发布到用户的Feed?
另外,我应该提前警告每个人......我是自学并且还在学习,虽然我可以查看代码,了解它的作用,并写出来......我担心我不是很好用术语&amp;讨论/理解一些语言...大声笑,如果你在任何答案或评论中记住这一点,它会帮助我很多:)谢谢,我期待着我的stackoverflow newb shell打破并成为这里的社区更加分散。
答案 0 :(得分:0)
想出来......而不是用initWithObjectsAndKeys集体设置post params,如下所示:
self.postParams =
[[NSMutableDictionary alloc] initWithObjectsAndKeys:
@"I am doing XYZ", @"message",
@"123456abc",@"tags",
self.selectedPlace.id,@"place",
nil];
为每个传递的参数创建单独的字典,并使用setValue将每个字典设置为最终的postParams:forKey:
[fbPostParams setValue:self.selectedPlace.id forKey:@"place"];