今日、皆さんに奇妙なことがあります。私の NSStrings が正しくエンコードされていないと思います。
NSString * convertedString = [NSString stringWithUTF8String:mesh->groupMesh[i].materialData->textureName];
-textureName は、NSString に変換する AC スタイルの文字列です。
- 文字列: "dennum1.png"
NSArray * line = [convertedString componentsSeparatedByString:@"."];
NSString * texPath = [[NSBundle mainBundle] pathForResource:line[0] ofType:line[1]];
次に、ピリオド "." で区切られた NSArray 行に分割します。
これにより、line[0] が dennum1、line[1] が png になります。
確認するために NSLog も実行します。
NSLog(@"Name:%@ Type:%@", line[0], line[1]);
2013-09-21 02:15:27.386 SteveZissou[8846:c07] Name:dennum1 Type:png
これを pathForResource 関数に渡して解析すると、(null) 応答が返されます。
しかし、ファイル名をコード IE にハードタイプすると、次のようになります。
convertedString = @"dennum1.png";
NSArray * line = [convertedString componentsSeparatedByString:@"."];
NSString * texPath = [[NSBundle mainBundle] pathForResource:line[0] ofType:line[1]];
NSLog(@"This is the texPath: %@",texPath);
できます?!
This is the texPath: /Users/meow/Library/Application Support/iPhone Simulator/6.0/Applications/2DEB8076-5F9D-45DE-8A73-10B1C8A084B4/SteveZissou.app/dennum1.png
コードにハードタイプした NSString と、変換によって得られた NSString のエンコードが異なる可能性はありますか?
それらを個別に NSLog すると、タイプに関係なく同じ結果が得られます。
2013-09-21 02:15:27.386 SteveZissou[8846:c07] This is the c style string: dennum1.png
2013-09-21 02:15:27.386 SteveZissou[8846:c07] This is the converted c style string: dennum1.png
2013-09-21 02:15:27.386 SteveZissou[8846:c07] This is the string manually typed in: dennum1.png