0

私は現在、ユーザーがアプリケーションをアップグレードすると、すべての結果がカラー チャートで表示されるシステムを使用しています。

ViewController.m の上部

int kMaxRecords = 300;

配列の直前に;

allText = [[NSMutableArray alloc] init];

次に、次のような300色。

[allText addObject:@"Indigo"]; 

等々 ...

これは IBAction によって制御されます。

- (IBAction)setRandomText {
    selectedRecNumber = (arc4random() % kMaxRecords);
    NSString *text = [allText objectAtIndex:selectedRecNumber];
    [randomText setText:text];

if ([MKStoreManager featureAPurchased]) {

        kMaxRecords = [allText count];

    }else{

        // this is where I would like to control a set limit of colors, let's say, 50, or 100

        }

    }

    count++;

}

}else{ の後で、たとえば、300 色のうち最初の 100 色のみを表示するにはどうすればよいでしょうか? 使ってみました;

kMaxRecords = 100;

しかし、それはうまくいきませんでした...

編集 -

さらに複雑にするために、さらにいくつかの可能性を紹介しましょう。

 if ([MKStoreManager featureAPurchased] || [MKStoreManager featureDPurchased] ||[MKStoreManager featureEPurchased] ) {

        kMaxRecords = [allText count];

    }else{

            if (![MKStoreManager featureAPurchased] || ![MKStoreManager featureCPurchased] || ![MKStoreManager featureDPurchased] || ![MKStoreManager featureEPurchased] ) {

                kMaxRecords = 35; 
                allText = [[allText subarrayWithRange:NSMakeRange(0, 34)] mutableCopy];

        }else{

            if ([MKStoreManager featureCPurchased] ) {

                kMaxRecords = 135; 
                allText = [[allText subarrayWithRange:NSMakeRange(0, 134)] mutableCopy];

                }
            }

        }

}

編集 2 - これは viewDidLoad です。

- (void)viewDidLoad {

   allText = [[NSMutableArray alloc] init];

    [allText addObject:@"Green"];
    [allText addObject:@"Orange"];
    and more and more...



    if ([MKStoreManager featureAPurchased] || [MKStoreManager featureDPurchased] ||[MKStoreManager featureEPurchased] ) {

        kMaxRecords = [allText count];

    }else{

            if (![MKStoreManager featureAPurchased] || ![MKStoreManager featureCPurchased] || ![MKStoreManager featureDPurchased] || ![MKStoreManager featureEPurchased] ) {

                kMaxRecords = 35; 
                allText = [[allText subarrayWithRange:NSMakeRange(0, 34)] mutableCopy];

        }else{

            if ([MKStoreManager featureCPurchased] ) {

                kMaxRecords = 135; 
                allText = [[allText subarrayWithRange:NSMakeRange(0, 134)] mutableCopy];

                }
            }

        }

}

- (IBAction)setRandomText {

    selectedRecNumber = (arc4random() % kMaxRecords);
    NSString *text = [allText objectAtIndex:selectedRecNumber];
    [randomText setText:text];
    count++;

}
4

1 に答える 1

0

subarrayWithRange: を使用して allText を再定義して、元のアイテムを必要なだけ含めることができます。

- (void)viewDidLoad {
     [super viewDidLoad];
     allText = [[NSMutableArray alloc] init];
     allText addObject:@"Indigo"];
     //... etc. until array is filled with 300 colors
     [self makeUserArray];
}

-(void)makeUserArray {
    if ([MKStoreManager featureAPurchased]) {
        kMaxRecords = [allText count];
    }else{
        kMaxRecords = 100; // or whatever number you want here
        usableText = [[allText subarrayWithRange:NSMakeRange(0, 100)] mutableCopy];
    }
}

- (IBAction)setRandomText {
    selectedRecNumber = (arc4random() % kMaxRecords);
    NSString *text = [usableText objectAtIndex:selectedRecNumber];
    [randomText setText:text];

    count++;
}
于 2013-07-15T20:20:39.187 に答える