OC 정적 라이브러리 NSClassFromString nil의 해결
1352 단어 String
NSString *myClassStr = @"myClass";
Class myClazz = NSClassFromString(myClassStr);
if (myClazz) {
id myClassInit = [[myClazz alloc] init];
}
(항상) Class가nil인 경우 인터넷 검색에서 일반적으로 이렇게 말한다.The class object named by aClassName, or nil if no class by that name is currently loaded. If aClassName is nil, returns nil.
64비트 시스템의 버그:
IMPORTANT: For 64-bit and iPhone OS applications, there is a linker bug that prevents -ObjC from loading objects files from static libraries that contain only categories and no classes. The workaround is to use the -all_load or -force_load flags. -all_load forces the linker to load all object files from every archive it sees, even those without Objective-C code. -force_load is available in Xcode 3.2 and later. It allows finer grain control of archive loading. Each -force_load option must be followed by a path to an archive, and every object file in that archive will be loaded.
내 실측에 대해 우선, 정적 라이브러리의 항목이 아니라 주 항목 (target) 에서build setting을 변경해야 합니다.그 다음에
-all_load
유효하고 -force_load
심지어 컴파일도 끝내지 못한다. 그 위에 메인 프로젝트(정적 라이브러리를 인용한 프로젝트)의build setting에서 검색other linker flags
을 한 다음에 -all_load
를 추가하면 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Access Request, Session and Application in Struts2If we want to use request, Session and application in JSP, what should we do? We can obtain Map type objects such as Req...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.