こんにちは、開発担当の常です。
通常、XMLデータを解析する場合、NSXMLParserを使って、NSData *dataを
NSXMLParser* parser = [[NSXMLParser alloc] initWithData:data];
といった感じで渡してやれば大丈夫です。
でも、XMLデータの文字エンコードがShift_JISである場合、
<?xml version="1.0" encoding="Shift_JIS" ?>
<Project>
<project_name>★☆★最優先案件 プロジェクト★☆★</project_name>
</Project>
非常に稀なケースですが、NSXMLParserSpaceRequiredErrorというパースエラーが発生します。
特に、iOS 6 において、発生頻度が高いようです。

iOSのドキュメントに、下記のような説明があります。
NSXMLParserSpaceRequiredError
Space is required.
XMLデータ自体に半角スペースの不備があるのかも知れないですが、
いろいろ調査してみても、XMLデータ自身は問題がなさそうです。
いろいろ試してみたところ、下記の対策で、問題が解決できました。
対策:Shift-JISのデータをutf-8のデータに変換する
NSString *utf8str = [[[NSString alloc] initWithData:xmlData encoding:NSShiftJISStringEncoding] autorelease];
NSRange xmlHeaderStart = [utf8str rangeOfString:@"<?xml"];
NSRange xmlHeaderEnd = [utf8str rangeOfString:@"?>"];
NSData *newData = NULL;
if (xmlHeaderStart.location != NSNotFound &&
xmlHeaderEnd.location != NSNotFound &&
xmlHeaderEnd.location > xmlHeaderStart.location) {
// ヘッダ情報からエンコードShift_JISをutf-8に変換する
utf8str = [utf8str stringByReplacingOccurrencesOfString:@"\"Shift_JIS\"" withString:@"\"utf-8\""
options:NSCaseInsensitiveSearch range:NSMakeRange(xmlHeaderStart.location, xmlHeaderEnd.location)];
// Shift-JISのデータをutf-8のデータに変換する
newData = [utf8str dataUsingEncoding:NSUTF8StringEncoding];
}
さらにnewDataを渡して、解析すればOKです。
NSXMLParser* parser = [[NSXMLParser alloc] initWithData:newData];









