/ / string to int масив в aim - object-c, масиви, string

низ към int масив в обектив - цел-c, масиви, низ

Здравейте Опитвам се да конвертирате низ в int масив в обектив C нейното изпълнение добре в xcode, но дайте някаква грешка в редактора http://ideone.com

Имам вход като = {1,2,3,4,5} и искам да го преобразувам в int масив или NSARRAY във и отпечатвам ....

#import <Foundation/Foundation.h>

NSArray* sampleMethod(NSString*val){
NSString *stringWithoutbracketstart = [val stringByReplacingOccurrencesOfString:@"{" withString:@""];
NSString *stringWithoutbracketend = [stringWithoutbracketstart
stringByReplacingOccurrencesOfString:@"}" withString:@""];
NSLog(@"%@",stringWithoutbracketend);
NSArray *items=[[NSArray alloc]init];
items = [stringWithoutbracketend componentsSeparatedByString:@","];
//NSLog(@"%@",items);
return items;
}

int main(int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *value =@"{1,2,3}";
NSArray* ip1= sampleMethod(value);
NSLog(@"%@",ip1);
[pool drain];
return 0;

}

Отговори:

1 за отговор № 1

Защо да не направите входния низ валиден JSON и след това той може да бъде произволно разширен с малко кодиране усилия (никакво усилие по отношение на разбора):

int main(int argc, const char **argv)
{
int retval = 0;
@autoreleasepool {
if (argc == 2) {
NSString *str = @(argv[1]);
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
NSArray *array = [NSJSONSerialization JSONObjectWithData:data
options:0
error:&error];
if ([array isKindOfClass:[NSArray class]]) {
// Done
} else if (!array) {
NSLog(@"Input data is invalid: %@", [error localizedDescription]);
retval = 2;
} else {
NSLog(@"Input data is invalid");
retval = 3;
}
} else {
NSLog(@"Provide a JSON-list");
retval = 1;
}
}
return retval;
}

Това означава, че ще трябва да предоставите списъка във формат JSON:

$ ./myprog "[ 1, 2, 3 ]"

(цитати са необходими)


-2 за отговор № 2

Намерих лесно решението с помощта на вашите съвети ....

#import <Foundation/Foundation.h>

NSArray*sampleMethod(NSString*val){
NSString *newStr = [val substringFromIndex:1];
NSString *newStr1 = [newStr substringToIndex:[newStr length]-1];
NSArray *yourWords = [newStr1 componentsSeparatedByString:@","];
return yourWords;
}

int main(int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *value =@"{1,2,3}";
NSArray* ip1= sampleMethod(value);
NSLog(@"%@",ip1);
[pool drain];
return 0;
}