整数,每隔 X 数调用一次函数

Integers, call function every X number

我有一个具有游戏风格元素的应用程序,即使它不是游戏,我有游戏中心,并且希望在每次 100 'Chatters' 加入他们的 Group/Forum。一旦他们达到某些里程碑(1k subscribed/joined 聊天等),我将免费为用户提供应用内 DLC

所以我尝试使用 Parse.com 通知用户每 X 次订阅,但很难每 100 次重复一次。我能够以这种方式使它工作,但是手动添加它们有点烦人。是否有内置的 API 方法可以使这更容易?

PFQuery *query = [PFQuery queryWithClassName:@"Groups"];
[query getObjectInBackgroundWithId:@"------vNDd" block:^(PFObject *object, NSError *error) {
[object incrementKey:@"Group_Chatters" byAmount:[NSNumber numberWithInt:1]];
[object saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (succeeded) {
        NSNumber *objectNumber = [object valueForKey:@"Group_Chatters"];
        int subscribers = [objectNumber intValue];
        if ([self subscribersIsNewMilestone:subscribers]) {
            //Send Notification
        }
    } else {

    }
}];
}];

-(BOOL)subscribersIsNewMilestone:(int)subscribers {
  int i = subscribers + 1; //This will include the new subscription that just happened

  if ((i == 100) || (i == 200) || (i == 300) || (i == 400) || (i == 500) || etc etc etc ) {
      return YES;
  } else {
      return NO;
  }
}

使用取模运算符(%)

即在你的情况下:

if (i % 100 == 0) {
...

每当 i 被 100 整除时,此 if 语句将为真。注意:0 % 100 也是 0,但在您的情况下,这不应该成为问题,因为您总是加 1。

取模运算符 % returns 左操作数除以右操作数的余数。它几乎存在于所有现代编程语言中。更多内容 here

例如

int x = 10
x % 2 // 0 because 10 / 2 = 5, remainder 0
x % 3 // 1 because 10 / 3 = 3, remainder 1
x % 0 // division by zero error, because 10 / 0 is undefined