2010-05-07 2 views
7

Ich habe versucht, das von Apple veröffentlichte Erreichbarkeitsprojekt zu verwenden, um eine Erreichbarkeit in einem eigenen Beispiel zu erkennen. i kopiert die meisten Initialisierung, aber ich bekomme diesen Fehler in den Linker:hat den Erreichbarkeitstest von Apple kopiert, aber der Linker gibt einen Fehler aus

Ld build/switchViews.build/Debug-iphoneos/test.build/Objects-normal/armv6/test normal armv6 
cd /Users/uid04100/Documents/TEST 
setenv IPHONEOS_DEPLOYMENT_TARGET 3.1.3 
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk -L/Users/uid04100/Documents/TEST/build/Debug-iphoneos -F/Users/uid04100/Documents/TEST/build/Debug-iphoneos -filelist /Users/uid04100/Documents/TEST/build/switchViews.build/Debug-iphoneos/test.build/Objects-normal/armv6/test.LinkFileList -dead_strip -miphoneos-version-min=3.1.3 -framework Foundation -framework UIKit -framework CoreGraphics -o /Users/uid04100/Documents/TEST/build/switchViews.build/Debug-iphoneos/test.build/Objects-normal/armv6/test 

undefinierte Symbole:
"_SCNetworkReachabilitySetCallback", referenziert von: - [Erreichbarkeits startNotifer] in Reachability.o
" _SCNetworkReachabilityCreateWithAddress“, referenziert von: + [Erreichbarkeits reachabilityWithAddress:] in Reachability.o
"_SCNetworkReachabilityScheduleWithRunLoop", verwiesen ab: - [Erreichbarkeits startNotifer] in Reachability.o
"_SCNetworkReachabilityGetFlags", referenziert von: - [Erreichbarkeits connectionRequired] in Reachability.o - [Erreichbarkeits currentReachabilityStatus] in Reachability.o
"_SCNetworkReachabilityUnscheduleFromRunLoop" , referenziert von: - [Erreichbarkeits stopNotifer] in Reachability.o
"_SCNetworkReachabilityCreateWithName", verwiesen von: + [Erreichbarkeits reachabilityWithHostName:] in Reachability.o
ld: Symbol (e) nicht
collect2 gefunden: ld returned 1 exit status

mein delegate.h:

#import <UIKit/UIKit.h> 

@class Reachability; 

@interface testAppDelegate : NSObject 
<UIApplicationDelegate> { UIWindow 
*window; UINavigationController *navigationController; 

Reachability* hostReach; 
Reachability* internetReach; 
Reachability* wifiReach; 

} 

@property (nonatomic, retain) IBOutlet 
UIWindow *window; @property 
(nonatomic, retain) IBOutlet 
UINavigationController 
*navigationController; 

@end 

mein delegate.m:

#import "testAppDelegate.h" 

#import "SecondViewController.h" 
#import "Reachability.h" 

@implementation testAppDelegate 



@synthesize window; @synthesize 
navigationController; 

- (void) updateInterfaceWithReachability: 
(Reachability*) curReach { 
    if(curReach == hostReach) { 
     BOOL connectionRequired= [curReach connectionRequired]; 


     if(connectionRequired) 
     { //in these brackets schould be some code with sense, if i´m getting it to run 
     } 
     else 
     { 
     } 

    } if(curReach == internetReach) { } if(curReach == wifiReach) { 
} } 

//Called by Reachability whenever 
status changes. 
- (void) reachabilityChanged: (NSNotification*)note { 
Reachability* curReach = [note 
object]; NSParameterAssert([curReach 
isKindOfClass: [Reachability class]]); 
[self 
updateInterfaceWithReachability: 
curReach]; } 


- (void)applicationDidFinishLaunching:(UIApplication 
*)application {  
    // Override point for customization after application launch 
    // Observe the 
kNetworkReachabilityChangedNotification. 
When that notification is posted, the 
    // method "reachabilityChanged" will be called. // 
[[NSNotificationCenter defaultCenter] 
addObserver: self selector: 
@selector(reachabilityChanged:) name: 
kReachabilityChangedNotification 
object: nil]; 

    //Change the host name here to change the server your monitoring 
hostReach = [[Reachability 
reachabilityWithHostName: 
@"www.apple.com"] retain]; [hostReach 
startNotifer]; [self 
updateInterfaceWithReachability: 
hostReach]; 

    internetReach = [[Reachability reachabilityForInternetConnection] 
retain]; [internetReach 
startNotifer]; [self 
updateInterfaceWithReachability: 
internetReach]; 

    wifiReach = [[Reachability reachabilityForLocalWiFi] retain]; 
[wifiReach startNotifer]; [self 
updateInterfaceWithReachability:wifiReach]; 
    [window addSubview:[navigationController 
view]]; 
    [window makeKeyAndVisible]; } 


- (void)dealloc { [navigationController release]; 
    [window release]; 
    [super dealloc]; } 


@end 

Antwort

18

vergessen. Ich wusste einfach nicht, dass ich das Systemkonfigurations-Framework manuell hinzufügen muss. Ich dachte, es würde hinzugefügt werden, wenn es importiert wurde.

+1

Sie importieren keine Frameworks; Sie importieren Header. Das Importieren eines Headers in eine Quelldatei fügt dem Projekt oder dem Ziel, wie Sie gesehen haben, kein Framework hinzu. –

+5

Ja, das Hinzufügen von SystemConfiguration.framework wird das Problem lösen. – tszming

Verwandte Themen