duplicate symbol for architecture arm64 error
오늘도 어김없이 개발을 하다가 오류가 나서 포스팅을 남깁니다.
하나씩 남기다 보면 모든 오류 정복하겠지 했지만 오류는 끝이 없고 부질없는 생각이었던 것이 증명이 됐습니다.
오류도 고치는 맛이 있지 않겠습니까
오류 때문에 들어오신 개발자님들 개발자 꿈나무님들 힘내세요! 하하하
이번 포스팅 내용은 심볼이 duplicate라고 나는 오류입니다.
이 오류가 어쩌다 발생됐냐 하시면!
objective-c로 그룹핑된 constants를 구현하고 싶어서 struct를 아래와 같이 구성하다가 발생을 하였습니다.
struct MONExtResultStruct {
NSString * const AppID;
NSString * const ErrorCode;
NSString * const Progress;
};
extern const struct MONExtResultStruct MONExtResult;
const struct MONExtResultStruct MONExtResult = {
.AppID = @"appid",
.ErrorCode = @"errorcode",
.Progress = @"progress"
};
그루핑 아주 잘됩니다.
원하는 constants 형태입니다.
NSString * str = MONExtResult.AppID;
이런 식으로 사용할 수 있어서 매우 좋습니다.
자 이제 테스트를 하려고 빌드를 합니다.
duplicate symbol for architecture arm64 에러를 뱉습니다.
아~~~~~~~~~~~~~
그래서 아래처럼 고치니 잘되네요
struct MONExtResultStruct {
NSString * const AppID;
NSString * const ErrorCode;
NSString * const Progress;
};
static struct MONExtResultStruct MONExtResult = {
.AppID = @"appid",
.ErrorCode = @"errorcode",
.Progress = @"progress"
};
static 선언으로 변경을 한 것입니다.
swift에서는 훨씬 간결한 작업인데 objective-c에서는 이렇게밖에 안돼네요
혹시 더 좋은 방법을 아시는 분이 계시다면 코멘트 부탁드리겠습니다!
'IT > iOs' 카테고리의 다른 글
프레임워크 지원하는 아키텍처 확인하는법 (0) | 2019.11.18 |
---|---|
App Store Connect Operation Warning (0) | 2019.11.16 |
section header height must not be negative error (0) | 2019.11.08 |
UIBackgroundTaskIdentifier vs BGTaskScheduler (0) | 2019.11.05 |
Can't end BackgroundTask error (7) | 2019.10.31 |