2012-11-14 3 views
6

Sto seguendo la risposta selezionata importing private frameworks in XcodeUtilizzando Framework privato: Importazione RadioPreferences.h

Fondamentalmente io voglio essere in grado di controllare la modalità aereo nella mia app. Quando importa RadioPreferences.h nella mia app e provo a compilare, sto ricevendo Expected Identifier per @class <RadiosPreferencesDelegate>;

Non sono proprio sicuro di cosa fare dopo. Non sapevo nemmeno che puoi inoltrare i protocolli.

+0

Vedi qui http://stackoverflow.com/questions/13095109/reachability-airplane-mode-3g-vs-wifi – Joe

+0

sto ottenendo: 'simboli non definiti per l'architettura ARMv7: "_OBJC_CLASS _ $ _ RadiosPreferences", si fa riferimento da: objc-class-ref in NetworkManager.o ld: simbolo (i) non trovato per l'architettura armv7 clang: errore: comando linker non riuscito con codice di uscita 1 (utilizzare -v per vedere l'invocazione) ' – ninjaneer

+0

Dove hai trovato 'RadioPreferences.h', è necessario assicurarsi di collegarsi al framework corretto? – Joe

risposta

8

Prima copia i seguenti contenuti in un file denominato RadioPreferences.h. (Tratto da https://stackoverflow.com/a/13095362/418715).

@protocol RadiosPreferencesDelegate 
-(void)airplaneModeChanged; 
@end 


@interface RadiosPreferences : NSObject 
{ 
    struct __SCPreferences *_prefs; 
    int _applySkipCount; 
    id <RadiosPreferencesDelegate> _delegate; 
    BOOL _isCachedAirplaneModeValid; 
    BOOL _cachedAirplaneMode; 
    BOOL notifyForExternalChangeOnly; 
} 

- (id)init; 
- (void)dealloc; 
@property(nonatomic) BOOL airplaneMode; 
- (void)refresh; 
- (void)initializeSCPrefs:(id)arg1; 
- (void)notifyTarget:(unsigned int)arg1; 
- (void)synchronize; 
- (void *)getValueForKey:(id)arg1; 
- (void)setValue:(void *)arg1 forKey:(id)arg2; 
@property(nonatomic) BOOL notifyForExternalChangeOnly; // @synthesize notifyForExternalChangeOnly; 
@property(nonatomic) id <RadiosPreferencesDelegate> delegate; // @synthesize delegate=_delegate; 

@end 

  • successiva, andare ai fasi di creazione del vostro target in Xcode e ampliare la collegamento binari con le librerie sezione.
  • In una finestra del Finder passare a /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/PrivateFrameworks. Sostituisci iPhoneOS6.0.sdk nel percorso con lo sdk che stai bersagliando.
  • Trascina AppSupport.framework sul tuo espanso Link Binary With Libraries sezione.

Ora dovrebbe essere compilato e sarà possibile utilizzare la classe.

+0

realtà aspettare, sto ancora ricevendo 'simboli non definiti per l'architettura armv7s: "_OBJC_CLASS _ $ _ RadiosPreferences", fa riferimento a: objc-class-ref nel NetworkManager.o ld: il simbolo (s) non trovate in architettura armv7s Clang : errore: comando linker non riuscito con codice di uscita 1 (utilizzare -v per vedere l'invocazione) 'dopo aver seguito questo. – ninjaneer

+0

Whoops, ho avuto alcuni problemi di pathing, ora funziona. Grazie! – ninjaneer

+0

Il codice sopra riportato funziona per me con autorizzazioni per <= 6.x. Ma non riesco a passare a IOS 7.x. Si prega di fornire i dettagli Api se si è in grado di farlo – androabhay