2015-09-16 46 views
3

爲「NSObject的」不可見的@interface聲明的「初始化」從Xcode 7和iOS 9 SDK的NSObject開始,不可能了嗎?

我不能這樣做了選擇:

#import <Foundation/Foundation.h> 

@interface Title : NSObject 

@property NSString *title; 
@property NSString *author; 

- (id) initWithTitle: (NSString *)title 
      author: (NSString *)author; 
@end 

#import "Title.h" 

@implementation Title 

- (id) initWithTitle: (NSString *)title 
      author: (NSString*)author 
{ 
    self = [super init]; 
    if (self) { 
     self.title = title; 
     self.author = author; 
    } 
    return self; 
} 

@end 

任何人都可以帶來一些光爲什麼選擇器不見了,現在我們已經做了很長一段時間了?更重要的是,它現在仍然需要但是寫法不同嗎? - 或者我們是否應該假設返回的是正確的類型? (我不確定它是否相關,但是alloc init似乎也沒有了,Doh,這麼多代碼要重寫..任何修復?) 這是一個孤立的問題。看到我的答案。

+2

顯示類聲明以及發佈代碼所在方法的其餘部分。 – rmaddy

+0

使用'instancetype',而不是'id'作爲'init ...'方法的返回值。看看是否有幫助。 – rmaddy

+0

問題依然存在。 ('NSObject'沒有可見的@interface聲明選擇器'init')也許我的Xcode 7安裝有問題嗎? – user4047248

回答

0

該問題似乎是設備特定的。在選擇另一個活動方案來運行應用程序時似乎已經解決了。而且,從使用xcode 7.0版創建的新項目運行時,問題不會出現。

我懷疑一些項目配置設置,只是不確定哪一個。

編輯:從App Store重新安裝xcode修復了問題。