2014-04-26 2 views
3

저는 이것을 살펴 봤지만 그 대답은 항상 그 문제와 관련이있는 것으로 보입니다.변환 지정자 '+'가 유효하지 않습니다.

JSON을 사용하여 웹 서버에서 정보를 요청하고 정보를 테이블보기로 가져 오려고합니다. 나에게 문제를주고 코드는 다음과 같습니다 :

CalendarCommunicator.m :

#import "CalendarCommunicator.h" 
#import "CalendarCommDelegate.h" 


@implementation CalendarCommunicator 

- (void)searchGroupsAtCoordinate:(CLLocationCoordinate2D)coordinate 
{ 
    NSString *urlAsString = [NSString stringWithFormat:@"http://medpak.costarica.com/api/content/render/false/type/json/query/+structureName:calendarEvent%20+(conhost:9fe93d82-1cd8-46b1-9dda-8b940e407d23%20fonhost:SYSTEM_HOST)%20+languageId:1", coordinate.latitude, coordinate.longitude]; 
    NSURL *url = [[NSURL alloc] initWithString:urlAsString]; 
    NSLog(@"%@", urlAsString); 

    [NSURLConnection sendAsynchronousRequest:[[NSURLRequest alloc] initWithURL:url] queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 

     if (error) { 
      [self.delegate fetchingGroupsFailedwithError:error]; 
     } else { 
      [self.delegate recievedGroupsJSON:data]; 
     } 
    }]; 
} 

@end 

NSString *urlAsString 섹션에서는이 URL에 경고를 얻을. ''잘못된 변환 지정자 '+' '가 표시됩니다. 이것은 정확히 무엇을 의미합니까? URL에 많은 '+'기호가 있거나 뭔가 빠졌습니까?

답변

7

이유는 %이 URL의 퍼센트 인코딩과 형식 문자열 모두에 의미가 있다는 것입니다. 이 경우 +stringWithFormat은 문자열에 %20+이 표시되며 형식 명령을 제공한다고 생각합니다. URL 형식 문자열에 리터럴 % 인 경우 %%, 즉 %%을 문자열 형식화 메서드/함수에 전달하여 % 리터럴을 가져옵니다.

그러나 특정 경우에 어떤 위치를 대체하려고하는지, 어떤 위치를 퍼센트 이스케이프로 사용할지 확실하지 않습니다.

+0

경고를 없애준 @Carl에게 감사드립니다! – user3521856

관련 문제