Как использовать ключевое слово extern для определения глобальных ivars, кто-нибудь знает этот вопрос? Заранее спасибо.
Обновление из комментариев:
Хорошо, я поискал в Интернете, что мне следует объявить переменную в файле .h, как показано ниже,
int name;
@interface testGlobal : NSObject
@end
И когда я хочу использовать его в одном файле .m, я должен написать, как показано ниже,
extern int name;
@implementation ViewController
When I use it in the implementation file,I got the following error
duplicate symbol _name in: /Users/jay_Gao/Library/Developer/Xcode/DerivedData/Audition-bahpwhcmpnzxppajcliyuhtuaywz/Build/Intermediates/Audition.build/Debug-iphonesimulator/Audition.build/Objects-normal/x86_64/Test.o /Users/jay_Gao/Library/Developer/Xcode/DerivedData/Audition-bahpwhcmpnzxppajcliyuhtuaywz/Build/Intermediates/Audition.build/Debug-iphonesimulator/Audition.build/Objects-normal/x86_64/testGlobal.o ld: 1 duplicate symbol for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)', can you explain this please? – I build successfully by remove the
#import "testGlobal.h"
from test.m. But what if I want to import that file testGlobal.h in other files, can not I do it? Should I only declare the global variable in AppDelegate.h? Since on other file will import AppDelegate.h?
Я тестирую это со своей стороны, и я могу успешно его построить, но меня смущает, почему глобальная переменная должна быть объявлена таким образом. Переменная находится вне любого блока кода.
nameобъявили где-то еще. Полное сообщение об ошибке всегда лучше, чем его часть, обновите вопрос с его помощью. - person zaph   schedule 29.08.2015