I suggest you make your query string lower case and don't use the [cd] as a part of the predicate statement, both for Core Data optimization purposes but also that it returns the correct results.
Working example:
NSArray *ar = @[@"å",@"a",@"åa"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self CONTAINS %@", @"å"];
NSArray *filteredArray = [ar filteredArrayUsingPredicate:predicate];
NSLog(@"Results: %@",filteredArray); // which returns (å,åa)