预期的标识符或'('括号错误(?)

时间:2014-09-23 09:09:31

标签: ios objective-c iphone

当我尝试将核心数据添加到单个视图项目时出现此错误,我正在遵循此处的指南http://blog.shalomfriss.com/?p=1016。我在我的AppDelegate-m文件中的第一个括号中出现此错误,该括号位于- (void)saveContext;之上。我也会把代码放在这里,所以我可以得到一些帮助,但我认为问题是在所有括号中的某个地方,我现在一直试图修复它,但我不能让它工作,所以这就是为什么我我在这里发布我的问题:)。

AppDelegate h - file

#import <UIKit/UIKit.h>

@interface AppDelegate: UIResponder <UIApplicationDelegate>
@property (strong, nonatomic)  UIWindow *window;

@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

-(void)saveContext;
-(NSURL *)applicationDocumentsDirectory;

@end

,这里是AppDelegate m -file

#import "AppDelegate.h"


@implementation AppDelegate;

@synthesize managedObjectContext = _managedObjectContext;
@synthesize managedObjectModel = _managedObjectModel;
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator;
@end



{

- (void)saveContext

    {
    NSError *error = nil;
    NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
    if (managedObjectContext != nil) {
        if ([managedObjectContext hasChanges] &amp;&amp; ![managedObjectContext save:&amp;error]) {
            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            abort();
            }
        }
    }


    #pragma mark - Core Data stack

- (NSManagedObjectContext *)managedObjectContext
    {
    if (_managedObjectContext != nil) {
        return _managedObjectContext;
    }

    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];{
        if (coordinator != nil) {
        _managedObjectContext = [[NSManagedObjectContext alloc] init];
        [_managedObjectContext setPersistentStoreCoordinator:coordinator];
        }
            return _managedObjectContext;
    }

- (NSManagedObjectModel *)managedObjectModel
    {
    if (_managedObjectModel != nil)
        return _managedObjectModel;
    }
    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MyDataModel" withExtension:@"momd"];
    _managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
    return _managedObjectModel;
    }

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

    NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"YourDataBaseName.sqlite"];

    NSError *error = nil;
    _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
        if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&amp;error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();

        }
        return _persistentStoreCoordinator;
    }


#pragma mark - Applications Documents directory


- (NSURL *)applicationDocumentsDirectory
    {
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
    }

@end

所以,错误在第一个括号的m文件中。

1 个答案:

答案 0 :(得分:2)

实现文件中的@end语句和括号是虚假的:

@end    // remove

{       // remove

- (void)saveContext