나는 중요한 추가와 알렉스 코플란의 대답에 동의합니다.
가 (당신이 원하는/E 또는 W) "Constants.h"라는 이름의 파일에 모든 상수를 넣어
는 편집 :
내가 3 년 전에이 질문에 대답
- , 나는에 있었다
#define
악 대차, 아래에서 수정 버전을 확인하십시오.
Constants.h
#define kFilterDate @"date"
#define kFilterRadius @"radius"
#define kFilterSort @"sort"
//Global Strings
#define kDividingString @"/"
//Strings
#define kTour @"Tour"
#define kToursKey @"tours"
당신의 모든 헤더 프로젝트를 통해 자동으로 가져올 수 있도록하지만 그 대신 당신이 그것을 필요로하는 어떤 파일을 가져 오는, 당신의 접두사 파일에서 가져옵니다.
Project_Prefix.pch
//
// Prefix header for all source files of the project
//
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "Constants.h"
#endif
개정
이전의 모든 정보가 여전히 작동 모든하지만
, 우리는 조금 더 안전한 우리의 상수에 대한 일을 할 수있는 몇 가지가 있습니다.
이 여전히 위처럼 접두사 파일로 가져올 수 있습니다 Constants.m
//Filters
NSString *const kFilterDate = @"date";
NSString *const kFilterRadius = @"radius";
NSString *const kFilterSort = @"sort";
//Global Strings
NSString *const kDividingString = @"/";
//Strings
NSString *const kTour = @"Tour";
NSString *const kToursKey = @"tours";
당신의 Constants.h
파일 const를 변수
//Filters
FOUNDATION_EXPORT NSString *const kFilterDate;
FOUNDATION_EXPORT NSString *const kFilterRadius;
FOUNDATION_EXPORT NSString *const kFilterSort;
//Global Strings
FOUNDATION_EXPORT NSString *const kDividingString;
//Strings
FOUNDATION_EXPORT NSString *const kTour;
FOUNDATION_EXPORT NSString *const kToursKey;
과에서를 사용하여 귀하의 상수를 작성,하지만 진정으로 상수를 사용 그렇게하기 위해 파일에 전역. 많은 곳에서 자주 사용되는 것들. 모든 상수를이 파일에 덤프하면 상수를 사용하는 코드가 상수 파일에 결합됩니다. 따라서 코드를 재사용하려고하면 상수 파일이 있어야합니다.이것은 항상 반드시 나쁜 것은 아니며, 여러 번 의도되었지만 (괜찮습니다), 의존성을 제한하는 것은 항상 좋은 생각입니다. 개정에 대한
몇 가지 : extern
대
FOUNDATION_EXPORT
. 첫 번째 컴파일은 C 및 C++에서 서로 다릅니다. 기본적으로 extern
을 의미하지만 C++에서는 "C"플래그가 추가됩니다.
consts
대 defines
. consts
유형 안전하고 존경 범위입니다. defines
은 정반대입니다.
전역 상수에'.h .m'을 사용하는 것이 싫다. 각 변수 이름을 두 번 쓰면 고통이됩니다! – Hlung
깨끗하고 일관성 있고 읽기 쉬운 코드는 통증의 두 배에 달하는 10 배의 가치가 있습니다. – ColdLogic
다음과 같은 경우 어떻게해야합니까? 나는 "초기화 요소가 USER_LIST_URL에 대해 시간 상수를 컴파일하지 않는다"라고 말합니다. –