2012-03-24 2 views
0

URL을 하드 코드 된 #define으로 지정하고 싶습니다. 그들 중 일부는 사용자 이름이 필요합니다. 다음을 할 수있는 가능성을 찾고 있습니다.중첩 된 #define을 사용하여 URL을 만드시겠습니까?

#define kUserName John 
#define kUserInfoURL(USERNAME) [NSURL URLWithString:@"http://a.com/USERNAME"] 

이 작업을 수행 할 수 있습니까?

답변

2
그것은 수행 할 수 있습니다

, 문자열 화 (stringification) (see link)라고 :

#define kUserInfoURL(USERNAME) [NSURL URLWithString:@"http://a.com/" #USERNAME]

그러나 이것은 단지 하드 코드 된 사용자 이름과 거 작품입니다. 변수를 전달하면 그 내용이 아닌 변수의 이름을 얻게됩니다. 같은 결과를 얻을 수있는 메소드 나 함수를 만들어 보시지 않겠습니까?

예 :


#define kBaseUrl @"http://a.com" 

- (NSURL*)createUrlForUser:(NSString*)username { 
    NSString* url = [NSString stringWithFormat:@"%@/%@", kBaseUrl, username]; 
    return [NSURL URLWithString:url]; 
} 
+0

감사합니다! 이것은 나를 위해 그것을했다. – Norbert

관련 문제