разделить NSString на основные данные - PullRequest
2 голосов
/ 27 июня 2011

Я только изучаю основные данные.

Я пытаюсь разбить строку NSString на базовые данные.

Пока у меня есть такая строка:

NSString *testStr = @"Sam,Milton Keynes,01234567890";

И я делю это на массив, как это:

NSArray *array = [[NSArray alloc] init];
    array = [testStr componentsSeparatedByString:@","];

Затем поместите это в Core Data:

newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:context];

    [newContact setValue:[array objectAtIndex:0] forKey:@"name"];
    [newContact setValue:[array objectAtIndex:1] forKey:@"address"];
    [newContact setValue:[array objectAtIndex:2] forKey:@"phone"];

Это отлично работает для testStr, который я использую, но я хочу иметь возможность иметь строку с несколькими записями и разделить ее на Core Data - пример строки, которую нужно использовать:

NSString *testStr = @"Sam,Milton Keynes,01234567890|Hannah,Milton Keynes,021654768431|Adam,Broughton,42445454542";

Я могу сделать то, что я сделал выше, затем разделить этот массив дальше, но мой вопрос: как мне это сделать и сохранить в Core data?

любая помощь высоко ценится

Sam

1 Ответ

4 голосов
/ 27 июня 2011

Ну, вам нужно сначала разделить строку на | и цикл по массиву.Затем просто вставьте свой оригинальный код:

NSString *testStr = @"Sam,Milton Keynes,01234567890|Hannah,Milton Keynes,021654768431|Adam,Broughton,42445454542";

NSArray *personArray = [testStr componentsSeparatedByString:@"|"];

for(NSString *person in personArray) {
   NSArray *array = [person componentsSeparatedByString:@","];
   newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:context];

    [newContact setValue:[array objectAtIndex:0] forKey:@"name"];
    [newContact setValue:[array objectAtIndex:1] forKey:@"address"];
    [newContact setValue:[array objectAtIndex:2] forKey:@"phone"];
}

PS, не выделяйте массив, если вы собираетесь заполнить его позже другим экземпляром NSArray:

NSArray *array = [[NSArray alloc] init];
    array = [testStr componentsSeparatedByString:@","];

Здесь вы только что слили NSArray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...