ShareKit Api Изменить - PullRequest
       2

ShareKit Api Изменить

0 голосов
/ 28 января 2012

Я пытаюсь изменить код приложения ShareKit API к этому коду ниже:

dialog.attachment = [NSString stringWithFormat:@"{\"name\":\"%@\",\"href\"
:\"%@\",\"media\":[{\"type\":\"image\",\"src\":\"http://example.com/example.png\"
,\"href\": \"http://example.com/\"}]} ",item.title == nil ? SHKEncodeURL(item.URL) 
SHKEncode(item.title),SHKEncodeURL(item.URL)];

XCode Сообщает мне об ошибке префикса. Чего мне не хватает?

Ответы [ 2 ]

3 голосов
/ 28 января 2012

Извините, но ваш код - это большой кусок кода для спагетти.Трудно читать, склонен к ошибкам и трудно поддерживать (не только для вас, но и для ваших коллег-программистов).

Я хотел бы предложить немного разбить код - например:

// one way to define constant strings...
NSString * const kSHKAttachmentTemplateString = @"{\"name\":\"%@\",\"href\":\"%@\",\"media\":[{\"type\":\"image\",\"src\":\"http://example.com/example.png\",\"href\":\"http://example.com/\"}]}"

// and another one that uses a #defined constant string at the beginning of header file of .m file
#define SHK_ATTACHMENT_TEMPLATE_STR    @"{\"name\":\"%@\",\"href\":\"%@\",\"media\":[{\"type\":\"image\",\"src\":\"http://example.com/example.png\",\"href\":\"http://example.com/\"}]}"

// assuming item is an valid object
NSString *itemTitleOrURL = (item.title == nil) ? SHKEncodeURL(item.URL) : SHKEncode(item.title);

dialog.attachment = [NSString stringWithFormat:SHK_ATTACHMENT_TEMPLATE_STR, itemTitleOrURL, SHKEncodeURL(item.URL)];

Следование читаемому стилю кода определенно сэкономит ваше время при решении подобных синтаксических ошибок.

1 голос
/ 28 января 2012

В трехстороннем условном выражении отсутствует двоеточие;

Исходный код выглядит следующим образом:

dialog.attachment = [NSString stringWithFormat:@"{\"name\":\"%@\",\"href\"
:\"%@\",\"media\":[{\"type\":\"image\",\"src\":\"http://example.com/example.png\"
,\"href\": \"http://example.com/\"}]} ",item.title == nil ? SHKEncodeURL(item.URL) 
SHKEncode(item.title),SHKEncodeURL(item.URL)];

Измените его на

dialog.attachment = [NSString stringWithFormat:@"{\"name\":\"%@\",\"href\"
:\"%@\",\"media\":[{\"type\":\"image\",\"src\":\"http://example.com/example.png\"
,\"href\": \"http://example.com/\"}]} ",item.title == nil ? SHKEncodeURL(item.URL): 
SHKEncode(item.title),SHKEncodeURL(item.URL)];

Ошибка находится в конце третьей строки.

Вы должны были видеть это в редакторе XCode с небольшим желтым charat под позицией, где ошибка.

...