2012-06-13 5 views
4
//viewdidload 
{ 
str1 = [[NSMutableString alloc] initWithCapacity:0]; 
str2 = [[NSMutableString alloc] initWithCapacity:0]; 
}// 

for (int pq=1; pq<=temp; pq++) 
{ 
str1 = [NSMutableString stringWithString:[documentManager wholeTextForPage:pq] ] ; 
[self.str2 appendString:str1]; 
NSLog(@"content of page chumma1: %@",str1); 
} 
NSLog(@"cwhole text: %@",str2 

** Здесь str1 возвращает различную строку на каждой итерации. Я пытаюсь добавить каждую строку, возвращаемую str1 в str2. но str2 возвращает только одну строку, возвращаемую str1 при первой итерации. строки, возвращенные на другие итерации, не добавляются к str2. Пожалуйста, помогите мне найти способ подобрать это. Заранее спасибо.append NSMutable Strings in for loop

Благодаря & С уважением VEERA **

+0

Я думаю, что ваш цикл не так. – skram

+0

Кажется, вы просто голосуете на свой вопрос, так как этот вопрос закрыт, и вы тоже получили Голоса +4, что невозможно .... –

ответ

0
Use stringByAppendingString see example: 
But str2 should declare NSString 

Update:

NSMutableString *str1 = [NSMutableString string]; 
NSString *str2 = @""; 

for (int pq=1; pq<=temp; pq++) 
{ 
    str1 = [NSMutableString stringWithString:[documentManager wholeTextForPage:pq] ] ; 
    str2 = [str2 stringByAppendingString:str1]; 
} 

Это добавит все данные из str1 в str2.

+0

:(.. Несовместимые объекты Objective-C, назначающие 'struct NSString *', ожидаемые 'struct NSMutableString' - ПРЕДУПРЕЖДЕНИЕ –

+0

Объявить str2 как NSString – dianz

+0

:(такой же вывод ... str2 возвращает только строку с первой итерации –

0

Попробуйте что-то вроде этого ..

.... 
for (int pq=0; pq < temp; pq++) { 
    str1 = [NSMutableString stringWithString:[documentManager wholeTextForPage:pq] ] ; 
    [self.str2 appendString:str1]; 
    NSLog(@"content of page chumma1: %@",str1); 
} 

NSLog(@"cwhole text: %@",str2 
+0

>> также не работает. –

0

ли, как это для добавления строки:

str1 = [[NSMutableString alloc] initWithCapacity:0]; 
for (int pq=1; pq<=temp; pq++) 
{ 
    str1 = [str1 stringByAppendingString:[NSString stringWithString:[documentManager wholeTextForPage:pq]]]; 
} 
1
NSMutableString *str1= [NSMutableString new]; 
    for (int i =0; i < 10; i++) { 
     [str1 appendString:@"Hi "]; 
    } 
    NSLog(@"%@",str1); 

Ваш код не может работать, потому что appendString: (NSString *) не ул NSMutableString. поэтому используйте NSString.

для вас код попробовать это

for (int pq=1; pq<=temp; pq++) 
    [self.str2 appendString:[documentManager wholeTextForPage:pq]]; 
+0

[documentManager wholeTextForPage: pq] вернет NSString. Str2 - это NSmutable String, так что appendString не будет работать без кастинга. self.str2 также не работает. :( –

+0

'- (void) appendString: (NSString *)' нет необходимости в typecast, если вы хотите привести к типу, вы можете – dayitv89

0

Попробуй таким образом ....

NSMutableString *str1 = [[NSMutableString alloc]initWithCapacity:0]; 
NSMutableString *str2 = [[NSMutableString alloc]initWithCapacity:0]; 

for(int pq=1; pq<temp; pq++) 
{ 
    str1 = [NSMutableString stringWithFormat:[documentManager wholeTextForPage:pq]]; 
    str2 = (NSMutableString *)[str2 stringByAppendingFormat:str1]; 
    NSLog(@"content of page chumma1: %@",str1); 
} 

NSLog(@"cwhole text: %@",str2);