2011-06-29 8 views
1

私は

AppDelegate.h 

#import <UIKit/UIKit.h> 
#import "Reachability/Reachability.m" 

@class ...; 

@interface ... : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
    ... *viewController; 
    Reachability *hostReach; 
    NetworkStatus netStatus; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController; 
@property (nonatomic) NetworkStatus netStatus; 
-(void)updateInterfaceWithReachability: (Reachability*) curReach; 

@end 


AppDelegate.m 


#import "AppDelegate.h" 
#import "ViewController.h" 

@implementation ... 

@synthesize window=_window; 
@synthesize navigationController=_navigationController; 
@synthesize netStatus; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    // Override point for customization after application launch. 
    [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; 
    hostReach = [[Reachability reachabilityWithHostName:@"www.apple.com"]retain]; 
    [hostReach startNotifier]; 
    [self updateInterfaceWithReachability:hostReach]; 


    // Set the view controller as the window's root view controller and display. 
    self.window.rootViewController = self.navigationController; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

"到達可能性/ Reachability.m" を含むと私はエラーこの問題を解決するための方法を

ld: duplicate symbol _OBJC_IVAR_$_Reachability.localWiFiRef in /Users/../Documents/../build/.. .build/Debug-iphonesimulator/.. .build/Objects-normal/i386/..ViewController.o and /Users/../Documents/../build/.. .build/Debug-iphonesimulator/.. .build/Objects-normal/i386/..AppDelegate.o 

Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1 

を取得しますか?何が関連しているのでしょうか?

答えて

2

ヘッダーファイルのみをインポートします。 、

#import "Reachability/Reachability.h" 
+0

、エラー・LD:/Users/vladimir/Documents/FreeLance/build/FreeLance.build/Debug-iphonesimulator/FreeLance.build/Objects-normal/i386/Reachability-6894AC99071B3187.oでシンボルを複製し_OBJC_IVAR _ $ _ Reachability.reachabilityRefと/Users/vladimir/Documents/FreeLance/build/FreeLance.build/Debug-iphonesimulator/FreeLance.build/Objects-normal/i386/Reachability-A3396D425720E183.o – Vladimir

+1

サードパーティライブラリを使用していますか?あなたは、[ここで]同じ問題(https://groups.google.com/forum/#!topic/asihttprequest/Mx3f__bJ2fw)に直面している可能性があります。 –

+0

はい私はASIHTTPRequest を使用しています。それは問題です – Vladimir

2

あなたが到達可能性ライブラリを追加する際ASIHTTPRequestライブラリは、それゆえに、これらのファイルの重複シンボル・エラーの両方を持っている、あなたのプロジェクトフォルダが1 Reachability.hと1つのReachability.mファイルが含まれていることを確認する必要があります。重複したファイルを削除した後にクリーンビルドを実行する

5

私が使用しているサードパーティのライブラリ(libPusher)が既にReachabilityを含んでいたので同じ問題が発生しました。

ライブラリは事前にコンパイルされているので、私は何をすべきか分からなかったが、Reachability.hだけをプロジェクトに追加しました(Reachability.mではなく)。それによって私はそれをインポートしてクラスを使用することができましたが、重複したシンボルの問題はありませんでした。

0
  1. プロジェクトからreachability.mの参照を削除します。
  2. (この問題が発生した)フレームワークを追加します。
  3. クリーンとそれは私のために働いたプロジェクト

を構築します。

私はプロジェクトでフレームワークを追加しようとしましたが、この重複した問題が発生しました。

関連する問題