2014-02-18 3 views
0

у меня есть настройки bundel со строкой: версияNSInvalidArgumentException с stringByAppendingPathComponent

в моей версии настроек пучка = 2.9.1

в моем проекте, если я использую этот код, все хорошо:

NSString *path = [documentsDirectory stringByAppendingPathComponent:@"ma/V_2.9.1/gma2/fixture_layers/ifocus.xml"]; 

, если я использую этот код:

NSString *path = [documentsDirectory stringByAppendingPathComponent:(@"ma/V_%@/gma2/fixture_layers/ifocus.xml", version)]; 

у меня есть эта ошибка:

* Согласующего приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: '- [длина UITextField]: непризнанный селектор послал к экземпляру 0x9753190'

+1

Try 'NSString * путь = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat: @ "ma/V_%@/gma2/fixture_layers/ifocus.xml", версия]];' – Akhilrajtr

+0

я попробовать этот NSString * Путь = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat: @ "ma/V_%@/gma2/fixture_layers/ifocus.xml", версия]]; NSLog (@ "aaaaaaa% @", путь); и у меня есть эта ошибка: aaaaaaa/var/mobile/Applications/2D2290A0-6C9B-4260-BBD7-560CCF29A0E6/Documents/ma/V_ ; layer = >/gma2/fixture_layers/ifocus.xml – jeff

ответ

0

Поскольку вы уже включаете несколько символов в строку, нет никакого преимущества использовать stringByAppendingPathComponent. Таким образом, вы можете также просто использовать:

NSString* path = [documentsDirectory stringByAppendingFormat:@"ma/V_%@/gma2/fixture_layers/ifocus.xml", version]; 

Другой вариант, который дает вам преимущество stringByAppendingPathComponent, чтобы разорвать его прямо вниз, как это:

NSString* path = [[[[[documentsDirectory stringByAppendingPathComponent:@"ma"] stringByAppendingPathComponent:[NSString stringWithFormat:@"V_%@", version]] stringByAppendingPathComponent:@"gma2"] stringByAppendingPathComponent:@"fixture_layers"] stringByAppendingPathComponent:@"ifocus.xml"]; 

Но это своего рода уродливый.

+0

Я использую NSString * path = [documentsDirectory stringByAppendingFormat: @ "ma/V_%@/gma2/fixture_layers/ifocus.xml", версия]; NSLog (@ "aaaaaaa% @", путь); и у меня есть эта ошибка: aaaaaaa/var/mobile/Applications/2D2290A0-6C9B-4260-BBD7-560CCF29A0E6/Documentsma/V_ ; layer = >/gma2/fixture_layers/ifocus.xml – jeff

+0

Похоже, что ваша переменная 'version' является' UITextField', а не 'NSString' с номером версии. Поэтому вместо этого используйте 'version.text'. –

+0

работа в отличном состоянии с версией .text Thank's LOT !!! – jeff

1

NSString * Путь = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat : @ "ma/V_%@/gma2/fixture_layers/ifocus.xml", версия]];

Смежные вопросы