Jaki jest odpowiednik obiektu Objective-C funkcji JavaScript concat()
?Jak połączyć dwie tablice w Objective-C?
Zakładając, że oba obiekty są tablicami, jak by je połączyć?
Jaki jest odpowiednik obiektu Objective-C funkcji JavaScript concat()
?Jak połączyć dwie tablice w Objective-C?
Zakładając, że oba obiekty są tablicami, jak by je połączyć?
NSArray
„s arrayByAddingObjectsFromArray:
jest bardziej lub mniej równoważne .concat()
metodą Javascript w:
NSArray *newArray=[firstArray arrayByAddingObjectsFromArray:secondArray];
Uwaga: Jeśli firstArray
jest zerowa, newArray
będzie zerowe. Można to naprawić za pomocą następujących czynności:
NSArray *newArray=firstArray?[firstArray arrayByAddingObjectsFromArray:secondArray]:[[NSArray alloc] initWithArray:secondArray];
Jeśli chcesz strip-duplikaty:
NSArray *uniqueEntries = (NSArray *)[[NSSet setWithArray:newArray] allObjects];
Czy wymagałoby to "firstArray" jako "NSMutableArray"? – Moshe
nie, jest to metoda na NSArray – codelark
@Moshe Zwraca nowy (niezmienny) obiekt NSArray i nie zmienia oryginalnej tablicy, więc działa poprawnie na obiektach NSArray. – grahamparks
Oto symetryczny & prosty sposób po prostu zaczynając pustej tablicy:
NSArray* newArray = @[];
newArray = [newArray arrayByAddingObjectsFromArray:firstArray];
newArray = [newArray arrayByAddingObjectsFromArray:secondArray];
Wygląda na to, że wykonujesz operacje kalendarza. Rozważ użycie 'NSCalendar' i' NSDateComponents' oraz znajomych, aby zrobić to za Ciebie. Nie są one trywialnym tematem. Czy bierzesz pod uwagę miesiące przestępne? A co z czasem letnim? A co z sekundami przestępnymi? itp. –
@DaveDeLong - Właśnie przenoszę małą bibliotekę JavaScript. Będę refaktoryzować kod, gdy skończy się faktyczne przepisywanie. Moim pierwszym celem jest zdobycie informacji w Objective-C i późniejsza optymalizacja. – Moshe