2014-09-22 59 views
0

XCode 5中的示例項目之一被命名爲「Utility Application」。它有一個主視圖和一個備用視圖,並設置一個信息按鈕以將主視圖翻轉到備用視圖。它使用viewcontroller委託和協議定義從翻轉視圖切換回主視圖。在XCode 6中,它不再存在。xcode 6 Beta - ViewPort代表的奇怪警告

當我運行XCode中6這個簡單的XCode 5的例子中的應用程序,得到了一個警告在下面的方法:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"showAlternate"]) { 
     [[segue destinationViewController] setDelegate:self]; //<<<< Here is where the warning appears 
    } 
} 

警告是:發送「MainViewController * const_strong」到不兼容的類型的參數' id'

這是什麼?一個錯誤?該應用在模擬器和iOS設備上運行良好。以下是整個代碼。任何幫助都感激不盡。

**// MainViewController.h 

#import "FlipsideViewController.h" 

@interface MainViewController : UIViewController <FlipsideViewControllerDelegate> 

@end 

// MainViewController.m 

#import "MainViewController.h" 

@interface MainViewController() 

@end 

@implementation MainViewController 

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

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

#pragma mark - Flipside View 

- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller 
{ 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"showAlternate"]) { 
     [[segue destinationViewController] setDelegate:self]; //<<<< Here is where the warning appears 
    } 
} 

@end 


// FlipsideViewController.h 

#import <UIKit/UIKit.h> 

@class FlipsideViewController; 

@protocol FlipsideViewControllerDelegate 
- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller; 
@end 

@interface FlipsideViewController : UIViewController 

@property (weak, nonatomic) id <FlipsideViewControllerDelegate> delegate; 

- (IBAction)done:(id)sender; 

@end 


// FlipsideViewController.m 

#import "FlipsideViewController.h" 

@interface FlipsideViewController() 

@end 

@implementation FlipsideViewController 

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

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

#pragma mark - Actions 

- (IBAction)done:(id)sender 
{ 
    [self.delegate flipsideViewControllerDidFinish:self]; 
} 

@end** 

回答