我是iOS开发的新手,所以我不知道这样的错误,代码如下:
- (void)postToWall {
FBStreamDialog *dialog = [[[FBStreamDialog alloc] init]
autorelease];
dialog.userMessagePrompt = @"Enter your message:";
dialog.attachment = [NSString
stringWithFormat:@"{\"name\":\"Facebook Connect for
iPhone\",\"href\":\"http://developers.facebook.com/
connect.phptab=iphone\",\"caption\":\"Caption\",
\"description\":\"Description\",\"media\":[{\"type\":
\"image\",\"src\":\"http://img40.yfrog.com/img40/
5914/iphoneconnectbtn.jpg\",\"href\":
\"http://developers.facebook.com/connect.php?
tab=iphone/\"}],\"properties\":{\"another link\":
{\"text\":\"Facebook home page\",\"href\":
\"http://www.facebook.com\"}}}"];
[dialog show];
}
我正在尝试从关于facebook connect的在线教程中学习,所以我在代码中得到了这个错误,文件包括:
导入“FBSession.h” 导入“FBLoginButton.h”
你认为这可能导致问题吗?
答案 0 :(得分:3)
将字符串写入一行,或将"
添加到每行的结尾和开头:
dialog.attachment = [NSString
stringWithFormat:@"{\"name\":\"Facebook Connect for"
"iPhone\",\"href\":\"http://developers.facebook.com/"
"connect.phptab=iphone\",\"caption\":\"Caption\","
"\"description\":\"Description\",\"media\":[{\"type\":"
"\"image\",\"src\":\"http://img40.yfrog.com/img40/"
"5914/iphoneconnectbtn.jpg\",\"href\":"
"\"http://developers.facebook.com/connect.php?"
"tab=iphone/\"}],\"properties\":{\"another link\":"
"{\"text\":\"Facebook home page\",\"href\":"
"\"http://www.facebook.com\"}}}"];
另请注意,在这种情况下,您不需要使用stringWithFormat
,您可以像这样创建字符串:
dialog.attachment = @"{\"name\":\"Facebook Connect for"
"iPhone\",\"href\":\"http://developers.facebook.com/"
"connect.phptab=iphone\",\"caption\":\"Caption\","
"\"description\":\"Description\",\"media\":[{\"type\":"
"\"image\",\"src\":\"http://img40.yfrog.com/img40/"
"5914/iphoneconnectbtn.jpg\",\"href\":"
"\"http://developers.facebook.com/connect.php?"
"tab=iphone/\"}],\"properties\":{\"another link\":"
"{\"text\":\"Facebook home page\",\"href\":"
"\"http://www.facebook.com\"}}}";
答案 1 :(得分:2)
您发布的代码中唯一明显错误的是长字符串中间的所有换行符。此外,没有必要使用stringWithFormat。你的第一个'href'也错过了'?'来自GET查询。所以试试看看会发生什么:
dialog.attachment = @"{\"name\":\"Facebook Connect for iPhone\",\"href\":\"http://developers.facebook.com/connect.php?tab=iphone\",\"caption\":\"Caption\",\"description\":\"Description\",\"media\":[{\"type\":\"image\",\"src\":\"http://img40.yfrog.com/img40/5914/iphoneconnectbtn.jpg\",\"href\":\"http://developers.facebook.com/connect.php?tab=iphone/\"}],\"properties\":{\"another link\":{\"text\":\"Facebook home page\",\"href\":\"http://www.facebook.com\"}}}";
或者更好的是,将所有键和值分解到自己的NSString
中,然后使用stringWithFormat
将长字符串重新组合在一起。甚至更好,在内存中创建整个内容并使用NSJSONSerialization
来创建您的JSON字符串。它会更清洁,更不容易出错。
答案 2 :(得分:-1)
我可能错了,但我认为facebook除了每个键的价值字典外。
示例代码非常好并且有很好的文档记录。
尝试在字符串的开头和结尾之间替换“with”。