неожиданное "@" в программе - PullRequest
3 голосов
/ 28 марта 2012

Я новичок в разработке для 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, поэтому яполучил эту ошибку в коде, и файл включает в себя:

import "FBSession.h" import "FBLoginButton.h"

Как вы думаете, это может быть причиной проблемы?

Ответы [ 3 ]

3 голосов
/ 28 марта 2012

Либо напишите строку в одну строку, либо добавьте " в конец и начало каждой строки:

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\"}}}";
2 голосов
/ 28 марта 2012

Единственное, что явно не так с кодом, который вы разместили, это все разрывы строк в середине вашей длинной строки. Кроме того, использование 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 голосов
/ 28 марта 2012

Я могу ошибаться, но я думаю, что Facebook исключает словарь значений для каждого из этих ключей.

Там пример кода очень хорош и хорошо документирован.

Попробуйте заменить «на» между началом и концом строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...