2012-03-28 33 views
3

我在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上的在線教程學習連接,所以我在代碼中得到這個錯誤和文件包括:

進口「FBSession.h」 進口「FBLoginButton.h」

你認爲它可能是這會導致什麼問題?

+0

如果你提供確切的錯誤信息,行號,並圍繞這些行的代碼這將有助於。 – 2012-03-28 11:08:50

回答

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\"}}}"; 
+0

我用自己的方式和它作品,非常感謝我的朋友。 – 2012-03-29 01:36:19

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 S和把一長串回到一起使用stringWithFormat。甚至更好,在內存中創建整個事物並使用NSJSONSerialization來創建您的JSON字符串。它會更乾淨,不易出錯。

+0

非常感謝! – 2012-03-29 01:35:42

+0

不客氣,你可以點擊左邊的複選標記來接受答案。 – QED 2012-03-29 02:30:10

-1

我可能是錯的,但我認爲facebook除了每個鍵的值的字典。

有示例代碼是非常好的和有據可查的。

嘗試更換「」插圖中字符串的開始和結束。