2012-01-28 2 views
0

Я пытаюсь изменить код ShareKit API присоединения к этому ниже код: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 твердит мне префикс ошибки. Что мне не хватает?

ответ

1

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

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

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 с небольшим желтым символом под положением, где ошибка.

3

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

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

// 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)]; 

После читаемого стиля кода, безусловно, сэкономит ваше время при решении подобных ошибок синтаксиса.