Come si aggiungono più stringhe a una stringa? Qual è il modo più semplice per farlo? Se io non voglio creare una nuova linea di codice ogni volta aggiungo qualcosa da una stringa, mi piacerebbe fare qualcosa di simile:Aggiunta di più stringhe a una stringa
NSString *recipeTitle = [@"<h5>Recipe name: " stringByAppendingFormat:recipe.name, @"</h5>"];
NSLog(@"%@", recipeTitle);
// This shows: <h5>Recipe name: myrecipe
// Where's the </h5> closing that header ? It will only show up with the next line of code
recipeTitle = [recipeTitle stringByAppendingFormat:@"</h5>"];
//my problem is that will result in more than 1k lines of programming
Devo aggiungere necessariamente una nuova linea di accodamento l'ha aggiunto ogni volta? Esiste un modo più rapido/produttivo per farlo?
Sto provando a comporre il corpo dell'email con il mio tableview in esso e questo si tradurrà in un enorme set di linee di programmazione. Qualcuno che potrebbe darmi qualche suggerimento o qualcosa di meglio che comporre una stringa huuuge solo così posso popolare il mio corpo di posta elettronica con una tabella contenente i dati della mia tabella?
Qualsiasi aiuto per rendere questo più produttivo è apprezzato. Grazie ! Carlos Farini.
// Dopo aver lavorato su di esso un po 'ho ottenuto:
-(IBAction)sendmail{
MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init];
[composer setMailComposeDelegate:self];
NSString *recipeTitle = @"<h5>Recipe name: ";
recipeTitle = [recipeTitle stringByAppendingFormat:recipe.name];
recipeTitle = [recipeTitle stringByAppendingFormat:@"</h5>"];
NSString *ingredientAmount = @"";
NSString *ingredientAisle = @"";
NSString *ingredientTitle = @"";
NSString *tableFirstLine = @"<table width='90%' border='1'><tr><td>Ingredient</td><td>Amount</td><td>Aisle</td></tr>";
NSString *increments = @"";
int i=0;
for (i=0; i < [ingredients count]; i++) {
Ingredient *ingredient = [ingredients objectAtIndex:i];
ingredientTitle = ingredient.name;
ingredientAmount = ingredient.amount;
ingredientAisle = ingredient.aisle;
increments = [increments stringByAppendingFormat:recipeTitle];
increments = [tableFirstLine stringByAppendingFormat:@"<tr><td>"];
increments = [increments stringByAppendingFormat:ingredientTitle];
increments = [increments stringByAppendingFormat:@"</td><td>"];
increments = [increments stringByAppendingFormat:ingredientAmount];
increments = [increments stringByAppendingFormat:@"</td><td>"];
increments = [increments stringByAppendingFormat:ingredientAisle];
increments = [increments stringByAppendingFormat:@"</td></tr>"];
if (i == ([ingredients count]-1)) {
//IF THIS IS THE LAST INGREDIENT, CLOSE THE TABLE
increments = [increments stringByAppendingFormat:@"</table>"];
}
}
NSLog(@"CODE:: %@", increments);
if ([MFMailComposeViewController canSendMail]) {
[composer setToRecipients:[NSArray arrayWithObjects:@"[email protected]", nil]];
[composer setSubject:@"subject here"];
[composer setMessageBody:increments isHTML:YES];
[composer setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:composer animated:YES];
[composer release];
}else {
[composer release];
}
}
Ma poi di nuovo, è che mostra solo una riga della tabella. Cosa sto facendo di sbagliato qui?
posso mettere multipla% @ e poi andare come ..., recipe.name, recipe.preptime, recipe.included? Assegnerei tre stringhe nella stessa riga di codice. Non sarebbe male ... – Farini
Sì, è possibile. Puoi controllare la documentazione per altri modi di generare stringhe. – Odrakir
Perfetto. Grazie per l'illuminazione – Farini