Я читаю строковые данные из PLIST, который я использую для создания строки JSON (случайно для использования в Facebook Connect).
NSString *eventLink = [eventDictionary objectForKey:EVENT_FIND_OUT_MORE_KEY];
NSString *eventLinkEscaped = [eventLink stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *eventName = [eventDictionary objectForKey:EVENT_NAME_KEY];
NSString *eventDescription = [eventDictionary objectForKey:@"Description"];
NSString *eventImageAddress = [eventDictionary valueForKey:@"Image URL"];
if ([eventImageAddress length] == 0)
{
eventImageAddress = NO_EVENT_IMAGE_URL;
}
// Publish a story to the feed using the feed dialog
FBStreamDialog *facebookStreamDialog = [[[FBStreamDialog alloc] init] autorelease];
facebookStreamDialog.delegate = self;
facebookStreamDialog.userMessagePrompt = @"Publish to Facebook";
facebookStreamDialog.attachment =[NSString stringWithFormat: @"{\"name\":\"%@\",\"href\":\"%@\",\"description\":\"%@\",\"media\":[{\"type\":\"image\",\"src\":\"%@\",\"href\":\"%@\"}]}", eventName, eventLinkEscaped, eventDescription, eventImageAddress, eventLinkEscaped];
[facebookStreamDialog show];
Все это работает хорошо, но в некоторых описаниях событий (4 из 150) текст, отображаемый в диалоговом окне, пуст. Я нашел очевидных кандидатов, т. Е. Описание содержит символ «например» или символ авторского права. Мой вопрос заключается в том, существует ли простой вызов метода, например stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding, который гарантирует, что любые хитрые символы будут экранированы или проигнорированы?
Заранее спасибо,
Dave