Search code examples
iphoneobjective-ccocoanssetnsmutableset

Problem combining NSMutableSets


I have the following code:

   NSMutableSet* localSet = [[NSMutableSet alloc] initWithArray:symbols];
NSMutableArray* fetchedSymbolsArray = [NSMutableArray array];

for (NSDictionary* symbol in fetchedSymbols) {
    [fetchedSymbolsArray addObject:[NSDictionary dictionaryWithObject:[symbol valueForKey:@"symbol"] forKey:@"symbol"]];
}

NSMutableSet* serverSet = [[NSMutableSet alloc] initWithArray:fetchedSymbolsArray];

[localSet unionSet:serverSet];

for (NSDictionary* symbol in localSet) {
    NSLog(@"%@",[symbol valueForKey:@"symbol"]);
}

I want everything in serverSet to be in localSet. This code does not reflect this.

It would also be preferable if any duplicates were not added to localSet.

EDIT: Here is my log:

2011-08-16 17:46:28.887 Stream[94612:207] YHOO
2011-08-16 17:46:28.887 Stream[94612:207] GOOG
2011-08-16 17:46:28.887 Stream[94612:207] INTC
2011-08-16 17:46:28.888 Stream[94612:207] BIDU
2011-08-16 17:46:28.888 Stream[94612:207] INTC
2011-08-16 17:46:28.888 Stream[94612:207] BIDU
2011-08-16 17:46:28.888 Stream[94612:207] AAPL
2011-08-16 17:46:28.888 Stream[94612:207] AAPL
2011-08-16 17:46:28.889 Stream[94612:207] AMD
2011-08-16 17:46:28.889 Stream[94612:207] GMCR

Solution

  • try [localSet unionSet:serverSet]

    EDIT

    Here's code that just uses symbols instead of NSDictionarys:

    NSArray *symbols = [NSArray arrayWithObjects:@"AAPL",@"GOOG",@"INTC",@"YHOO",nil];
    
    NSArray *fetchedSymbols = [NSArray arrayWithObjects:@"AMD",@"BIDU",@"GOOG",@"GMCR",@"INTC",@"YHOO",nil];
    
    
    NSMutableSet* localSet = [[NSMutableSet alloc] initWithArray:symbols];
    NSMutableSet* serverSet = [[NSMutableSet alloc] initWithArray:fetchedSymbols];
    
    [localSet unionSet:serverSet];
    
    for (id symbol in localSet) {
        NSLog(@"%@",symbol);
    }
    
    2011-08-16 18:25:22.107 so7086790[39810:a0f] YHOO
    2011-08-16 18:25:22.116 so7086790[39810:a0f] AMD
    2011-08-16 18:25:22.116 so7086790[39810:a0f] AAPL
    2011-08-16 18:25:22.116 so7086790[39810:a0f] INTC
    2011-08-16 18:25:22.117 so7086790[39810:a0f] GMCR
    2011-08-16 18:25:22.117 so7086790[39810:a0f] GOOG
    2011-08-16 18:25:22.118 so7086790[39810:a0f] BIDU