SWRevealViewController错误。构建失败,但没有错误

时间:2014-08-10 11:05:50

标签: ios objective-c

首先,让我给你一个提醒。我熟悉XCode(5)和Objective-C。

但是,请考虑我一个菜鸟,请帮助我。

我正在尝试构建应用。我需要在应用的所有视图中使用幻灯片菜单。

我使用SwRevealViewController类创建了一个虚拟项目。我也制作了两个滑出菜单。它有效。

我尝试在我正在构建的应用程序中使用相同的方法。

但是我的构建失败了,没有错误和一个警告,我在之前的虚拟项目中有这个警告....

我已经将SwRevealViewController.h导入AppDelegate.m和ViewController.m

我尝试使用TableViewController作为幻灯片菜单(这是空的,我还没有添加任何代码)。但构建失败了。

编辑: "错误如下..

" @synthesize' weak'属性仅允许在ARC或GC模式"

我在我的项目中使用Core Data。我必须在我的应用程序中广泛使用webservice。所以我禁用了ARC。 "

我也尝试用其他视图替换表,但结果相同。现在我被卡住了。

我的代码知道了一些东西,但我找不到它。

我包括AppDelegate.m和ViewController.m的代码。

请检查并告诉我有什么问题。我在这里不知所措。

编辑: "由于Stack Overflow限制,我无法上传图片。所以我上传了一个错误的屏幕截图。这是网址。

http://tinypic.com/r/162vli/8"

感谢您的帮助。

AppDelegate.h

//  AppDelegate.h
//  IndianBloodBank
//
//  Created by Roshith Balendran on 8/5/14.
//  Copyright (c) 2014 Olympus. All rights reserved.
//


#import <UIKit/UIKit.h>

@class SWRevealViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UINavigationController *UINV;
@property (strong, nonatomic) SWRevealViewController *splitMenu;

@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

//
//  AppDelegate.m
//  IndianBloodBank
//
//  Created by Roshith Balendran on 8/5/14.
//  Copyright (c) 2014 Olympus. All rights reserved.
//

#import "AppDelegate.h"
#import "SWRevealViewController.h"
#import "HomePageViewController.h"
#import "SlideOutMenuTableViewController.h"
#import "SearchViewController.h"
#import "AboutUsViewController.h"
#import "SponsorsViewController.h"
#import "HowToDonateViewController.h"
#import "EmergencyViewController.h"

@implementation AppDelegate

@synthesize splitMenu,window,UINV;

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.

    self.window = window;

    HomePageViewController *HPVC = [[HomePageViewController alloc]init];

    SlideOutMenuTableViewController *SOMTVC = SOMTVC = [[SlideOutMenuTableViewController alloc]init];


    UINavigationController *frontNavigationController = [[UINavigationController alloc]initWithRootViewController:HPVC];
    UINavigationController *rearNavigationController = [[UINavigationController alloc]initWithRootViewController:SOMTVC];

    SWRevealViewController *revealController= [[SWRevealViewController alloc]initWithRearViewController:rearNavigationController frontViewController:frontNavigationController];

    revealController.delegate=self;
    revealController.rightViewController = SOMTVC;
    self.splitMenu = revealController;
    self.window.rootViewController = self.splitMenu;

    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

HomePageViewController.m

//
//  HomePageViewController.m
//  IndianBloodBank
//
//  Created by Roshith Balendran on 8/5/14.
//  Copyright (c) 2014 Olympus. All rights reserved.
//

#import "HomePageViewController.h"
#import "SWRevealViewController.h"
#import "AboutUsViewController.h"
#import "SponsorsViewController.h"
#import "HowToDonateViewController.h"

@interface HomePageViewController ()

@end

@implementation HomePageViewController

@synthesize btn1SearchBlood,btn2DonateNow;


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    [[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:0.055 green:0.055 blue:0.059 alpha:1]];

    self.navigationController.navigationBar.translucent=NO;

    SWRevealViewController *revealViewController = [self revealViewController];

    [revealViewController panGestureRecognizer];
    [revealViewController tapGestureRecognizer];

    UIBarButtonItem *menuButton = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"menu-icon"] style:UIBarButtonItemStyleBordered target:revealViewController action:@selector(revealToggle:)];

    self.navigationItem.leftBarButtonItem = menuButton;
}

1 个答案:

答案 0 :(得分:0)

解决方案很简单,我只需打开ARC。

SWRevealViewController类的基本要求是启用ARC。

在禁用ARC的情况下,您不能将此类用于滑出导航。

我的坏人。以为我在启用ARC的情况下检查了错误。我的错误。

因此,如果您遇到此错误“仅在ARC或GC模式下允许'弱'属性@synthesize”,只需打开ARC。