Что-то странное происходит. Когда я переназначаю NSString для моей переменной подстроки в нижней части моего кода. Кажется, что значение subString пусто в выводе. Я не знаю, возвращает ли objectAtIndex что-то странное или проблема с памятью. Если я создаю новую переменную вместо переназначения значения subString, я могу напечатать, увидев правильное значение в выходной консоли. Если бы кто-нибудь мог помочь мне понять это. Было бы очень благодарно.NSString Значение переменной исчезает после переназначения
NSString *subString = @"";
if ([text length] > 0)
{
UITextRange *selectedRange = [_textView selectedTextRange];
UITextPosition *cursorPosition = [_textView positionFromPosition:selectedRange.start offset:0];
UITextRange *subTextRange = [_textView textRangeFromPosition:_textView.beginningOfDocument toPosition:cursorPosition];
subString = [textView textInRange:subTextRange];
}
NSLog(subString);
NSLog(@" %s", [subString hasSuffix:@" "] ? "TRUE" : "FALSE");
BOOL hasSpaceSuffix = [subString hasSuffix:@" "];
NSLog(@" %s", _taggingInProgress ? "TRUE" : "FALSE");
NSArray *substringArray = [[subString componentsSeparatedByString:@" "] retain];
if ([substringArray count] > 1) {
int index = [substringArray count];
if ([[substringArray objectAtIndex:index-1] isEqualToString:@" "])
{
NSLog(@"1st");
subString = [substringArray objectAtIndex:index-2];
NSLog(subString);
}
else
{
NSLog(@"2nd");
subString = [substringArray objectAtIndex:index-1];
NSLog(subString);
}
NSLog(@"AFTER");
NSLog(subString);
}
Попробуйте использовать 'retain' в обоих назначений и посмотреть, если значение получает проводятся. НАПРИМЕР. 'subString = [[substringArray objectAtIndex: index-2] сохранить];' – eazimmerman
Не работает: '( – coolio
вы можете разместить вывод, который вы получаете? 1/2/AFTER? – sergio