Я использую категории NSDictionary и NSArrays, которые позволяют глубокое копирование
@implementation NSArray (DeepCopy)
- (id)deepMutableCopy {
NSMutableArray *mutableCopy = (NSMutableArray *)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFArrayRef)self, kCFPropertyListMutableContainers);
return mutableCopy;
}
@end
Проблема этой категории в том, что она работает на Xcode 4.2 с iOS 5, но не работает на Xcode 4.0 с iOS4.3
Я также похож на категорию NSDictionary, которая работает в обеих конфигурациях
@implementation NSDictionary (DeepCopy)
- (id)deepMutableCopy {
NSMutableDictionary *mutableCopy = (NSMutableDictionary *)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFDictionaryRef)self, kCFPropertyListMutableContainers);
return mutableCopy;
}
@end
Когда я вызываю
NSMutableArray *copiedArray = [resultsArray deepMutableCopy];
с resultsArray non nil,
В Xcode4.2 + iOS5 Simulator, Это работает
В Xcode4.0 / Xcode4.2 + Устройство iOS4.2.1, Это работает
В Xcode4.0 + iOS4.3 / 4.2 /4.1 / 4.0 Симулятор возвращает ноль!
Кто-нибудь может помочь?