2013-12-18 5 views
1

저는 서버에 문자열을 게시하는 샘플 앱을 만들고 있습니다. 사용자가 이전 게시물 이후 2 분 밖에 게시 할 수 없도록하고 싶습니다. 서버 측에서이 작업을 수행 할 수 있지만 느린 인터넷 연결이있을 때 서버에서 응답을 얻으려면 시간이 오래 걸릴 수 있습니다. 그래서 클라이언트 측 (iPhone)에서이 작업을 수행 할 계획입니다. 난 그냥 현재와 이전 게시물 사이의 시간을 비교하고 싶다. 누구든지 이전 게시물의 시간 절약을 도울 수 있습니까? 미안 누군가가 바보 같은 질문을 발견하면.사용자가 다시 게시 할 수 있도록 iOS의 시간을 비교하십시오.

+0

당신이 이전 시간을 절약하기 위해 NSUserDefaults를 사용할 수 있습니다. –

답변

1

아키텍처의 관점에서 다시 생각해야합니다.

사용자가 게시물을 올리면 시간을 계산할 수 있지만 사용자가 게시하려고하면 응답이 실패하고 다시 시간을 재설정해야합니다. 따라서 서버 응답이 오래 걸릴지 걱정되는 것과 같습니다.

후 잘 다 간다 가정 :

당신이 게시물이 성공적으로 게시 할 때 알 필요가있다. 그럼 당신은 응답을 얻을 어딘가에 시간을 절약 할 수 나 userdefaults 또는 plist 수 있습니다. 이 도움이 될

+1

고마워요 내가 말한 것에 대해 많이 일하게 될 것입니다. 훨씬 더 의미가 있습니다 ...;) – nravichan

1

: -

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; 

NSTimeInterval currentTime = [[NSDate date] timeIntervalSince1970]; 
NSString* timeStr = [NSString stringWithFormat:@"%f", currentTime]; 

float recentPostTime = [[defaults objectForKey:@"Recent_Post_Time"] floatValue]; 

if(currentTime-recentPostTime > 120.0f) 
{ 
    //Post to server here.. 

    //Update Recent Post Time in user defaults 
    [defaults setObject:timeStr forKey:@"Recent_Post_Time"]; 
    [defaults synchronize]; 
} 
else 
{ 
    //Alert the user that he/she can't post within 2 minutes again 
} 
+0

NSUserDefaults는 NSDate 객체를 저장할 수 있으므로 날짜를 문자열로 변환 할 필요가 없습니다. –

관련 문제