2010-10-06 4 views
0
//Parse this shit 
//Create array of all items in order (with submatches still 
NSString *myregex1 = @"\\<([a-z0-9]+)\\sref\=\"([^\"]*)\">([^\<]*)\\<\\/\\1\>"; 
//Get all items in an array 
NSArray *items = [stringReply componentsMatchedByRegex:myregex1]; 
//Create string to hold all items in 
NSString *AllOrderItems; 

if ([items count] > 0) { 

    for (NSString *item in items) { 
     //NSLog(@"%d", i); 
     NSString *ref = [item stringByMatching:myregex1 capture:2]; 
     NSString *value = [item stringByMatching:myregex1 capture:3]; 
     NSLog(@"Current Item: %@ : %@", ref, value); 
     AllOrderItems = [NSString stringWithFormat:(@"%@%@: %@\n", AllOrderItems, ref, value)]; 
     OrderDetails.text = AllOrderItems; 
    } 
} 

Im Tring obtenir chaque ref valeur & dans la chaîne AllOrderItems donc je peux le montrer dans un textViewAjouter chaque élément dans la chaîne

Merci

:)

+1

Quelle est la vraie question? – JeremyP

Répondre

0

Je pense que ce que vous voulez est le suivant:

//Parse this shit 
//Create array of all items in order (with submatches still 
NSString *myregex1 = @"\\<([a-z0-9]+)\\sref\=\"([^\"]*)\">([^\<]*)\\<\\/\\1\>"; 
//Get all items in an array 
NSArray *items = [stringReply componentsMatchedByRegex:myregex1]; 
//Create string to hold all items in 
NSString *allOrderItems = @""; // Intentionally existing but empty string! 

if ([items count] > 0) { 
    for (NSString *item in items) { 
     //NSLog(@"%d", i); 
     NSString *ref = [item stringByMatching:myregex1 capture:2]; 
     NSString *value = [item stringByMatching:myregex1 capture:3]; 
     NSLog(@"Current Item: %@ : %@", ref, value); 
     allOrderItems = [allOrderItems stringByAppendingFormat:(@"%@: %@\n", ref, value)]; 
    } 
    orderDetails.text = AllOrderItems; 
} 
+0

Comment ne jamais faire une nouvelle ligne:/ – user393273

+0

et son ne pas ajouter le ":" – user393273

+0

Avez-vous mis la propriété 'numberOfLines' sur' orderDetails'? Par défaut, il est défini sur 1, ce qui signifie exactement une ligne. Réglez-le sur '0' pour avoir une taille illimitée. – PeyloW

0

Peut-être à l'aide NSArray de componentsJoinedByString?

+0

Je pense que vous m'avez mal compris c'est la ligne que j'ai besoin de corriger: AllOrderItems = [NSString stringWithFormat: (@ "% @% @:% @ \ n", AllOrderItems, ref, valeur)]; Ce n'est pas montrer tous les éléments dans cette chaîne comme je demande – user393273

+0

Pourriez-vous montrer un exemple – user393273

+0

NSLog travaille pour vous? appelez-vous cette méthode à partir d'un thread séparé? –

1

AllOrderItems est nul pour commencer.

Ensuite, vous créez une nouvelle chaîne, avec la valeur de AllOrderItems comme l'une des parties, ce qui est nul. Donc, il affecte, nil, ref, valeur. Ensuite, vous faites à nouveau, donc vous obtenez nil, ref, value, nil, ref valeur. Etc etc

+2

Si vous êtes chanceux, c'est nul. Si vous êtes dans le contexte d'une méthode, c'est n'importe quelle valeur aléatoire dans cette position dans le cadre de la pile. – JeremyP

+0

True. J'ai manqué ça. – Jasarien

Questions connexes