Поведение категории изменяемых копий Deep NSArray - PullRequest
0 голосов
/ 02 марта 2012

Я использую категории 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 Симулятор возвращает ноль!

Кто-нибудь может помочь?

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