두 개의 objc .m 클래스가 있는데,이를 controller1.m 및 controller2.m이라고합니다.컴파일 오류를 일으키는 서로 다른 클래스에 같은 이름의 인스턴스 변수
controller1.m
@implementation controller1
UIAlertController *alertController;
//more code
@end
controller2.m
@implementaion controller2
UIAlertController *alertController;
//more code
@end
: controller1.m 및 controller2.m 모두에서 나는 UIAlertController의 경우, 이런 일이
프로젝트를 빌드하려고하면
오류가 발생합니다.링커 명령은 종료 코드 1 (호출을 볼 수 -v 사용)
함께 실패와 오류 로그는 지금의 인스턴스 변수의 이름을 변경이
duplicate symbol _alertController in:
/Users/.../Xcode/DerivedData/AppName-cdtbqibmmbsosrdeyqughefeazaa/Build/Intermediates/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/controller1.o
/Users/.../Xcode/DerivedData/AppName-cdtbqibmmbsosrdeyqughefeazaa/Build/Intermediates/AppName.build/Debug-iphonesimulator/AppName.build/Objects-normal/x86_64/controller2.o
처럼 보인다 그리고 그것은 효과가있었습니다 ... 왜 이것을해야합니까? Xcode는 이러한 변수가 (이름 때문에) 동일한 방식으로 사용되고 있음을 알고 있으며, 어떻게 든 변수를 전역 적으로 선언해야합니까?
인터페이스에서 속성으로 선언하십시오. – danh
@danh 아, 그래. 그런데 왜 그런가요? [나를 용서해, 나는 객관적으로 꽤 새로운 사람이다] –