このエラーは非常に奇妙です。私はアクセスするのに問題がないアプリケーションデリゲートのプロパティの束を持っています。私のコードはARCなしで正常に動作しましたが、ARCをオンにすると、私はこの非常に奇妙なエラーを受け取ります。 プロパティ 'navigationController'が 'AppDelegate *'タイプのオブジェクトに見つかりませんプロパティ 'x'がタイプ 'y *'のオブジェクトに見つかりませんでした。ARCの場合のみエラー
他のプロパティの束はこれ以外はうまく動作します。
私はすでにすべてをクリーンアップし、Xcodeを再起動しました。
AppDelegate.h:
@interface AppDelegate : UIResponder <UINavigationControllerDelegate> {
UINavigationController *navigationController;
NSString *appName;
}
@property (strong, nonatomic) NSString *appName;
@property (strong, nonatomic) UINavigationController *navigationController;
AppDelegate.m
#import "AppDelegate.h"
@synthesize navigationController, appName;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
appName = [NSString stringWithString:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]];
navigationController = [[UINavigationController alloc] initWithRootViewController:self.startViewController];
}
MyClass.h
@class AppDelegate;
@interface MyClass: UIResponder {
AppDelegate *appDelegate;
}
MyClass.m
ここコードであります
#import "AppDelegate.h"
#import "MyClass.h"
@implementation MyClass
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[self initFacebook];
}
return self;
}
- (void) doStuff {
NSLog(@"App Name:%@",appDelegate.appName); //this works fine
//This one doesn't
UINavigationController *myNavigationController = appDelegate.navigationController;
}
更新: 私は回避策を行いました。基本的に私はnavigationViewControllerという名前のMyClassにプロパティを作成し、MyClassがMyCLassのAppDelegateから直接取得するのではなく、AppDelegateでインスタンス化された後にオブジェクトを渡します。私はまだ困惑している、それはコンパイラのバグでなければならない。私はまだ元のコードを動作させる方法に非常に興味があります。
申し訳ありませんが、タイプミスでした。コードはかなり長くなりました。それはARCフラグなしでうまくコンパイルされます。私は、ARCフラグがないためにコードが漏れていることを示したAnalyzeを実行すると、アプリを提出しようとしていました。私は旗とバンを取り除いた!私はエラーが発生しました。これは、10のビューコントローラを持つ複雑なアプリケーションで、他のファイルはうまくコンパイルされます。 – Tibidabo