Если вы хотите удалить остаток строки после определенного появления «но», вы можете получить диапазон «но» и обрезать исходную строку вниз
NSString * test = [NSString stringWithString:@"iphone is good but rest of string"];
NSRange range = [test rangeOfString:@"but"];
if (range.length > 0) {
NSString *adjusted = [test substringToIndex:range.location];
NSLog(@"result %@", adjusted);
}
EDIT
Можно предположить, что при поиске не требуется вырезать слова «масло желтое», и можно изменить диапазон, добавив «но»
NSRange range = [test rangeOfString:@" but"];