2012-10-28 105 views
0

你好,我已經創建了一個簡單的應用程序與核心數據和OS X 10.8,這是簡單的模板,Xcode創建,但如果我更改基礎SDK 10.7 xcode給我這個錯誤這種方法在應用程序控制器:核心數據Mac OS X應用程序和與OS X 10.7兼容性

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator 
{ 
    if (_persistentStoreCoordinator) { 
    return _persistentStoreCoordinator; 
} 

NSManagedObjectModel *mom = [self managedObjectModel]; 
if (!mom) { 
    NSLog(@"%@:%@ No model to generate a store from", [self class], NSStringFromSelector(_cmd)); 
    return nil; 
} 

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSURL *applicationFilesDirectory = [self applicationFilesDirectory]; 
NSError *error = nil; 

NSDictionary *properties = [applicationFilesDirectory resourceValuesForKeys:@[NSURLIsDirectoryKey] error:&error]; 

if (!properties) { 
    BOOL ok = NO; 
    if ([error code] == NSFileReadNoSuchFileError) { 
     ok = [fileManager createDirectoryAtPath:[applicationFilesDirectory path] withIntermediateDirectories:YES attributes:nil error:&error]; 
    } 
    if (!ok) { 
     [[NSApplication sharedApplication] presentError:error]; 
     return nil; 
    } 
} else { 
    if (![properties[NSURLIsDirectoryKey] boolValue]) { 
     // Customize and localize this error. 
     NSString *failureDescription = [NSString stringWithFormat:@"Expected a folder to store application data, found a file (%@).", [applicationFilesDirectory path]]; 

     NSMutableDictionary *dict = [NSMutableDictionary dictionary]; 
     [dict setValue:failureDescription forKey:NSLocalizedDescriptionKey]; 
     error = [NSError errorWithDomain:@"YOUR_ERROR_DOMAIN" code:101 userInfo:dict]; 

     [[NSApplication sharedApplication] presentError:error]; 
     return nil; 
    } 
} 

NSURL *url = [applicationFilesDirectory URLByAppendingPathComponent:@"SimpleApp.storedata"]; 
NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:mom]; 
if (![coordinator addPersistentStoreWithType:NSXMLStoreType configuration:nil URL:url options:nil error:&error]) { 
    [[NSApplication sharedApplication] presentError:error]; 
    return nil; 
} 
_persistentStoreCoordinator = coordinator; 

return _persistentStoreCoordinator; 
} 

我收到此錯誤:

enter image description here

我可怎麼辦?

回答

2

這實際上不是Core Data的問題,但這與object subscripting有關。爲了使這些文字正常工作,您的SDK至少需要OS X 10.8或iOS 6.

如果沒有其他方法,仍然可以使用下標並通過添加存根標頭將SDK保持爲10.7到實現所需方法的NSObject類別。你可以看到一個這樣的例子here。不過,我建議保留10.8的SDK。

+0

那麼我如何解決它在10.7上運行? – Piero

+0

看到我更新的答案。 –

+0

好的,謝謝,但那麼應用程序可以在10.7系統上工作? – Piero