2012-03-28 12 views
3

Ich bin ein Neuling auf iOS-Entwicklung, so finde ich keine Ahnung, wenn Fehler wie diesen, ist der Code wie:unerwartet ‚@‘ in Programm

- (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]; 

    } 

Ich versuche, von einem Online-Tutorial über Facebook zu erfahren verbinden, so habe ich diesen Fehler im Code und die Datei enthält:

import „FBSession.h“ Import „FBLoginButton.h“

Glaubst du, es könnte sein, das das Problem verursacht?

+0

Es würde helfen, wenn Sie die genaue Fehlermeldung zur Verfügung gestellt, die Zeilennummer und den Code um diese Richtung. –

Antwort

3

Entweder die Zeichenfolge in einer einzigen Zeile schreiben, oder fügen Sie " bis zum Ende und Anfang jeder Zeile:

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

Beachten Sie auch, dass in diesem Fall brauchen Sie nicht stringWithFormat zu verwenden, können Sie erstellen Sie die Zeichenfolge wie folgt:

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

ich Ihren Weg verwendet, und es funktioniert, vielen Dank, mein Freund –

2

Das einzige, was offensichtlich falsch mit dem Code, den Sie geschrieben haben alle Zeilenumbrüche in der Mitte der langen Schnur ist. Auch die Verwendung von stringWithFormat ist dort nicht notwendig. Auch dein erstes 'href' fehlt ein '?' aus der GET-Abfrage. Also versuchen Sie dies und sehen, was passiert:

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

Oder noch besser, brechen alle Ihre Schlüssel und Werte in eigene NSString s und legte den langen String wieder zusammen stringWithFormat verwenden. Oder noch besser, erstellen Sie das Ganze im Speicher und verwenden Sie NSJSONSerialization, um Ihre JSON-Zeichenfolge zu erstellen. Es wird viel sauberer und weniger fehleranfällig sein.

+0

Vielen Dank! –

+0

Gern geschehen, Sie können die Antwort akzeptieren, indem Sie auf das Häkchen links klicken – QED

-1

Ich könnte falsch liegen, aber ich denke, dass Facebook ein Wörterbuch der Werte für jeden dieser Schlüssel ausschließt.

Dort Beispiel Code ist sehr gut und gut dokumentiert.

Try "mit" Inbetween Anfang und am Ende des Strings zu ersetzen.