Declarando extern NSString causa erro de linker
Isso é ridículo, estou tentando criar um som bool para transformar em sons de aplicativos. Eu continuo recebendo
Undefined symbols for architecture i386:
"_kPlaySoundPrefsKey", referenced from:
-[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Eu verifiquei que todos os meus arquivos estão ligados em fases de compilação, eu deletei o appdelegate .m onde eu estou recebendo o erro antes mesmo de eu chamar o bool em qualquer um dos meus controladores de visualização, e é importado em fases de compilação. Verificado eu tenho relevantes framweworks no lugar. Eu chequei até mesmo um aplicativo anterior que fiz com o mesmo código e o código parece ser exatamente o mesmo, sem erro (construído com a versão anterior do xcode). Voltando ao básico, recebo o erro assim que adiciono o seguinte código ao meu App Delegate,
.h
#import <UIKit/UIKit.h>
extern NSString *kPlaySoundPrefsKey;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
.m
#import "AppDelegate.h"
#import <AudioToolbox/AudioToolbox.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
NSDictionary *defaultDict = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
forKey:kPlaySoundPrefsKey];
return YES;
}
Se eu mudarextern NSString *kPlaySoundPrefsKey;
paraNSString *kPlaySoundPrefsKey;
ele constrói, em seguida, falhas ... Estou sem ideias agora