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

Posted

技术标签:

【中文标题】SWRevealViewController 错误。构建失败,但没有错误【英文标题】:SWRevealViewController Error. Build Fails, but no error 【发布时间】:2014-08-10 11:05:49 【问题描述】:

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

但是,请把我当作菜鸟,请帮帮我。

我正在尝试构建一个应用程序。我需要在应用的所有视图中都有一个滑出菜单。

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

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

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

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

我正在尝试使用 TableViewController 作为滑出菜单(它是空的,我还没有添加任何代码)。但是构建失败了。

编辑: " 错误如下..

"@synthesize of 'weak' property 只允许在 ARC 或 GC 模式下使用"

我在我的项目中使用 Core Data。而且我必须在我的应用程序中广泛使用网络服务。所以我禁用了ARC。 "

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

我知道它与我的代码有关,但我找不到它。

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

请检查并告诉我哪里出了问题。我在这里不知所措。

编辑: " 由于 Stack Overflow 限制,我无法上传图片。所以我在 tinypic 中上传了错误截图。这是 url。

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;

【问题讨论】:

请用完整和准确的错误/警告消息更新您的问题并指出它发生的位置。 没有错误...!!!构建根本失败......我想放一个截图,但我刚刚开始......没有权限...... 你说有一个警告。这是什么? 它在这一行...revealController.delegate=self;在 AppDelegate.m 中,导航控制器初始化下面关于分配的不兼容类型的一些事情。必须去 Mac 发布确切的问题...请稍候,我重新启动。 实际上,现在我已经重新启动了我的电脑,现在我有 16 个警告和 1 个错误...全部在 SWRevealViewController.m 中。错误是,'weak' 属性的@synthesize 只允许在 ARC 或 GC 模式下使用 【参考方案1】:

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

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

在禁用 ARC 的情况下,您不能使用该类进行滑出导航。

我的坏人。以为我检查了启用 ARC 的错误。我的错。

所以,如果您遇到此错误“@synthesize of 'weak' property is allowed in ARC or GC Mode”,只需打开 ARC。

【讨论】:

以上是关于SWRevealViewController 错误。构建失败,但没有错误的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController:使用 SWRevealViewController 错误:不平衡调用开始/结束外观转换

具有实用视图的 SWRevealViewController

SWRevealViewController 打开方法

带有 SWRevealViewController 的 ios 滑动状态栏

自定义 SWRevealViewController

SWRevealViewController 的 Segue 问题