2012-03-21 2 views
0

게임에서 마지막으로 이동 한 이후 시간 간격을 찾으려고합니다. 일반적으로, 목표 - C에서, 나는이 작업을 수행하고 잘 작동 :php date를 objective-c로 변환합니다.

NSDate *now = [NSDate date]; 
    NSDate *before = [NSDate dateWithTimeInterval:-60 sinceDate:now]; 

    NSTimeInterval interval = [now timeIntervalSinceDate: before]; 

내가 MySQL 데이터베이스에 lastTurn 날짜를 저장 :

timestamp - ON UPDATE CURRENT_TIMESTAMP 

내가 목표 - C에서 날짜를 얻으려고, 인식 할 수없는 선택기 인스턴스 오류로 전송 : - [__ NSCFString가 timeIntervalSinceReferenceDate] 내가 시간 간격을하려고 할 때

NSDate *lastTurn = match.lastTurn; 
    NSLog(@"lastTurn: %@", lastTurn); 

    Output: lastTurn: 2012-03-21 09:40:32 

... 그러나, 나는이 얻을 : 작동하는 것 같다.

NSDate *lastTurn = match.lastTurn; 
    NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate: lastTurn]; 

어떤 제안이 좋을까요? 감사합니다

내가 ASIHTTPRequest는 아이폰에 대한 데이터베이스에서 정보를 얻기 위해 사용

편집.

는 일치 클래스는 변수를 보유하고 단순한 클래스입니다 :

@property (nonatomic, strong) NSDate *lastTurn; 
etc... 

을 ... 그리고 나는이 작업을 수행하여 변수를 얻을 :

[request setCompletionBlock:^ 
    { 

    for (NSDictionary *dict in responseDict) 
    {     
      Match *match = [[Match alloc] init]; 
      match.lastTurn = [dict objectForKey:@"lastTurn"]; 
+0

소스 날짜 (PHP 날짜) 형식을 말씀해 주시겠습니까? –

+0

'Match' 객체의 인터페이스와 SQL 쿼리 결과에서 Match 객체를 빌드하는 코드를 게시 할 수 있습니까? – Mutix

+0

답장을 보내 주셔서 감사합니다. 더 많은 정보를 가지고 제 질문을 편집합니다 :) – BlackMouse

답변

3

(면책 조항 : 나는 대해 아무것도 몰라 objective-c, 이것은 완전한 쓰레기 일 수 있습니다. 설명서 만 읽으면 위험한 표면적 지식이됩니다 ;-))

내 베팅은

입니다.
NSDate *lastTurn = match.lastTurn; 
NSLog(@"className of lastTurn is %@", [lastTurn className]); 

className of lastTurn is __NSCFString이 출력되며 해당 문자열을 NSDate의 인스턴스로 변환해야합니다. NSDate의 인스턴스처럼 사용하기 전에 dateWithString. ,

있는 NSDate, timeIntervalSinceReferenceDate의 유일한 방법 프리미티브있는 NSDate 인터페이스에있는 다른 모든 방법에 대한 기초를 제공


NSDate Class Reference 말한다.

[NSDate date]lastTurn 모두에서 timeIntervalSinceReferenceDate이 호출됨을 의미합니다.
오류 메시지는 선택자 timeIntervalSinceReferenceDate__NSCFString의 인스턴스 (즉, NSDate의 인스턴스가 아닌 NSString의 '맛')로 전송되었음을 나타냅니다 (내가 잘못 본 것이 아니라면).
[NSDate date] 이므로 NSDate의 인스턴스는 아마도 lastTurn입니다.

내 생각에 responseDict의 모든 항목은 문자열이며 간단한 NSDate *lastTurn = match.lastTurn;은 (duck-) 유형 검사가 아닌 모든 변환을 수행하지 않습니다.

+0

훌륭합니다. 네가 옳아.그것은 문자열이었습니다 ... 문자열을 nsdate로 변환하면 작동했습니다 (dateFromString). 엄청 고마워 :) – BlackMouse

관련 문제