2012-08-24 70 views
-1

我想知道如何在用戶加載免費版本的應用程序中包含某些限制條件。例如:我有一個有大約100個條目的tableView。用戶可以最喜歡其中的10個,但不會更多,除非用戶購買高級版本!我正想着在FavoritetableViewController的numberOfRowsInSection中放入「return 10」。還是有更好的/舒適的方式來做到這一點?如何在免費/高級應用程序中包含限制?

還有一個註釋功能。因此,如果用戶看到評論,他/她想回復,他/她只需點擊「回答」。但是對於免費用戶,我想限制5次互動。因此,他們每天可以寫5條評論。我在想着實施某種內部時鐘。每當用戶點擊「提交」時,計數器就會上升。當計數器達到5時,按鈕被禁用。在時鐘過去24小時後,這個計數值得到重置。但說實話我還不知道該怎麼做。 所以任何想法或輸入將不勝感激。

回答

1

我不知道這是否是最好的解決方案,如果能幫到你。對我來說,做到這一點的方式是單身人士。您應該在啓動應用程序時使用Bool var premium來初始化他。此時,您應該使用您需要的所有數據初始化課程:最喜歡的行數,最後一天的評論數量......。

在每次「高級操作」之前,您都應該使用如下方法:BOOL authorized = [[AuthorizeSingleton sharedmanager] operation]。在這裏,您將需要進行所有測試,以瞭解他是否可以執行高級操作。

每當有人想要做一個高級操作時,你應該從viewController訪問這個單例。如果返回是NO,則彈出錯誤消息,在另一種情況下,您執行該操作。

如果用戶是優質總是返回是。

編碼迅速類似的東西

這裏.H

#import <Foundation/Foundation.h> 

@interface AuthorizeSingleton : NSObject 
@property (strong, nonatomic) NSNumber* premium; 
@end 

這裏.M #進口AuthorizedSingleton.h

AuthorizeSingleton* _sharedInstance=nil; 

@interface AuthorizeSingleton() 

@property (strong, nonatomic) NSDate* timestamp; 
@property (strong, nonatomic) NSNumber* numberOfcomentary; 
@end 

@implementation AuthorizeSingleton 
@synthesize timestamp=_timestamp, numberOfcomentary=_numberOfcomentary; 

-(id)init{ 
    if (self == [super init]) { 
    //Here you should take data from your persistence(NSUSerDefaults or something like that) Here I initialize at 0 
     _timestamp=[[NSDate alloc] init]; 
     _numberOfcomentary= [NSNumber numberWithInt:0]; 
    } 

    return self; 
} 

+(AuthorizeSingleton*)sharedInstance{ 
    if (!_sharedInstance) { 
     _sharedInstance = [[AuthorizeSingleton alloc] init]; 
    } 

    return _sharedInstance; 
} 

-(BOOL)shouldDoComentary{ 
    NSDate* today= [[NSDate alloc] init]; 
    NSTimeInterval interval = [_timestamp timeIntervalSinceDate: today]; 

    if (interval>60*60*24) { 
     _timestamp=today; 
     _numberOfcomentary= [NSNumber numberWithInt:0]; 
    } 

    if (_numberOfcomentary.integerValue>5 && !_premium.boolValue) { 
     return NO; 
    } 

    return YES; 
} 

@end 

我沒有測試它但是這是理念。你可以從你想要授權的地方打電話給班級

BOOL auth = [[AuthorizedSingleton sharedInstance] shouldDoComentary] 
if(!auth){ 
    //show error 
} 
else{ 
    //do action 
} 
+0

聽起來不錯。但是,我怎麼能限制他每天只能寫五條評論呢?內部時鐘的好處是什麼,或者你會怎麼做? – Blade

+0

對於我有一個最後一次將計數器重置爲0的時間戳。每當他做出評論時,如果保存的時間戳和當前時間之間的差異爲1天或更多,則重置計數器。你覺得這很好嗎?這可以在授權用戶做評論的功能上的單身人員上做。 – Jpellat

+0

當您重置計數器時,您應該將時間戳重置爲 – Jpellat

相關問題