Stig Brautaset의 JSON 프레임 워크는 NSDates (직접 지원되지 않음)를 비롯한 일부 객체를 직렬화합니다.NSDate의 initWithString : nil을 반환 함
나는 NSDate의 설명을 날짜의 JSONFragment 표현으로 사용하기로 결정했다. (그렇게하는 동안 발생하는 정밀도의 작은 손실은 신경 쓰지 않는다.)
가 NSDates를 포함 Stig Brautaset의 JSON 틀을 확장, I은 카테고리 정의 :@interface NSDate (NSDate_JSON) <JSONInitializer>
-(NSString *) JSONFragment;
@end
는 JSON에서있는 NSDate (다른 종류)을 재생성을 I는 다음의 이니셜과 프로토콜을 정의 :
@protocol JSONInitializer <NSObject>
-(id) initWithJSONRepresentation: (NSString *) aJSONRepresentation;
@end
이 이니셜 라이저에 문제가 있습니다. NSDate의 경우 initWithString :을 호출하기 만하면 문제가 발생합니다. 항상 nil을 반환합니다. 구현 예 :
#import "NSDate+JSON.h"
@implementation NSDate (NSDate_JSON)
-(NSString *) JSONFragment{
NSString *strRepr = [self description];
return [strRepr JSONFragment];
}
-(id) initWithJSONRepresentation:(NSString *)aJSONRepresentation{
return [self initWithString: aJSONRepresentation]; //returns nil!
}
@end
나는 무슨 일이 일어나는지 잘 모르겠습니다. 게다가 컴파일러는 initWithJSONRepresentation의 initWithString : 메소드를 찾을 수 없다고 경고합니다.
아무도 모르게 무슨 일이 일어날 지 알고 있습니까?
테스트 케이스의 전체 소스 코드는 here입니다.
'aJSONRepresentation'은 어떻게 생겼습니까? –
정확히 NSDate의 설명과 같습니다. – cfischer
사실, 그렇지 않습니다. –