-[NSString initWithBytes:length:encoding:NSUTF8StringEncoding]
работает со строками длиннее 129 байт.
Ваша проблема в другом месте.
Изменить, чтобы ответить на комментарий:
Как я уже сказал, у вас проблема не от длины , а от какой-то другой проблемы. Как предположил @Bavarious, ваша строка может быть недействительной UTF-8.
Следующий код работает как положено:
const char* c_string = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";
NSString *string = [[[NSString alloc] initWithBytes:c_string
length:strlen(c_string)
encoding:NSUTF8StringEncoding] autorelease];
assert([string length] == strlen(c_string)); // only valid for ASCII
Если вы все еще думаете - [NSString initWithBytes: length: encoding:] может работать не так, как ожидалось, пожалуйста, отправьте код вместе с рассматриваемой строкой.