2013-08-02 3 views
-1

약 50 개의 조회수를 가진 iOS 앱이 있습니다. 사용자가 방문하는 매 5 번째 화면 이후에 일부 작업을 수행하려고합니다. 나는 일종의 글로벌 카운터 변수를 생성하고 각 뷰의 viewDidLoad에서 업데이트 할 수 있고 카운트가 5이면 해당 연산을 수행하고 해당 카운터 변수를 재설정 할 수 있음을 알고 있습니다. 이 작업을보다 효율적으로 효율적으로 수행 할 수있는 방법이 있습니까? 또한 미리보고, 내가 뭔가를 바꿀 필요가 있다면, 나는 오히려 모든 견해보다 하나의 파일에서 그것을 할 것이다. 이것에 대한 약간의 의견을 정말로 고맙게 생각합니다.iOS 앱에서 조회수를 계산하는 효율적인 방법

+0

뷰 또는 뷰 컨트롤러? 뷰 컨트롤러 인 경우 네비게이션 컨트롤러를 사용하고 섹스를 푸시하고 있습니까? 그것들은 모두 동일한 뷰 컨트롤러 클래스 (예 :'UIViewController')에서 파생됩니까? –

+0

스토리 보드가 아닌 xibs를 사용하고 있습니다. 예, 저는 View Controller를 의미했으며, 모두 UIViewController에서 파생되었습니다. 감사. –

답변

1

당신의 카운터 로직을 추적하고, 모든 뷰 컨트롤러에 대한 기본 클래스를 생성 한 다음 기본 클래스의 viewDidLoad에서 카운터 싱글 톤을 호출하는 싱글 톤 클래스를 생성합니다.

이 같은 무언가가 당신을 위해 일 것이라고 생각 :

@interface ViewCountManager() 

@property(nonatomic) NSInteger viewCount; 

@end 

@implementation ViewCountManager 

#define kOperateOnCount 5 
+(ViewCountManager *)viewCountManager 
{ 
    static ViewCountManager *viewCountManager = nil; 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 
     viewCountManager = [[self alloc] init]; 
    }); 
    return viewCountManager; 
} 

-(BOOL)shouldPerformOperation 
{ 
    BOOL retValue = NO; 
if(self.viewCount == kOperateOnCount - 1) 
    { 
     retValue = YES; 
     self.viewCount = 0; 
    } 
    else 
    { 
     self.viewCount++; 
    } 
    return retValue; 
} 

@end 


@implementation CountedViewController 

-(void)viewDidLoad:(BOOL)animated 
{ 
    [super viewDidLoad:animated]; 
    BOOL shouldPerform = [[ViewCountManager viewCountManager] shouldPerformOperation]; 
    [self performOperation]; 
} 


@end 
관련 문제