0

int indx;ヘッダー ファイルでプロパティを宣言します。次に、実装ファイルに次の 2 つのメソッドがあります。

-(IBAction)nextHaiku
{
{
    if (!self.indx)
    {
        self.indx=0;
    }
    NSString *cat = self.selectedCategory;
    //For now (adjust later so that, according to UISegmentedControl, it will also show only the user's haiku or all haiku):
    cat = @"Derfner";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"category == %@", cat];
    NSArray *filteredArray = [self.gayHaiku filteredArrayUsingPredicate:predicate];
    int array_tot = [filteredArray count];
    int sortingHat;
    if (array_tot > 0)
        if (self.indx == self.theseAreDone.count)
        {
            while (true)
            {
                sortingHat = (arc4random() % array_tot);
                if (![theseAreDone containsObject:[filteredArray objectAtIndex:sortingHat]]) break;
            }
            self.haiku_text.text = [[filteredArray objectAtIndex:sortingHat] valueForKey:@"quote"];
            if (!self.theseAreDone || self.theseAreDone.count==array_tot)
            {
                self.theseAreDone = [[NSMutableArray alloc] init];
            }
            [theseAreDone addObject:[filteredArray objectAtIndex:sortingHat]];
            self.indx = self.theseAreDone.count;
        }
        else 
        {
            self.haiku_text.text = [[self.theseAreDone objectAtIndex:indx] valueForKey:@"quote"];
            self.indx += self.indx;
        }
}
}

-(IBAction)previousHaiku
{
self.haiku_text.text = [[self.theseAreDone objectAtIndex:self.indx-1] valueForKey:@"quote"];
self.indx -= self.indx;
}

NSLogが呼び出されるself.indxたびに 1 ずつ増加することを示しています。newHaikuしかし、最後に呼び出されたときの値に関係なく、0から始まるNSLogことも示しています。self.indxpreviousHaikunewHaiku

私は何が欠けていますか?

4

1 に答える 1

0

私が見逃していたのは、私が馬鹿だという事実でした。self.indx -= self.indxの代わりに使用していましたself.indx -=1。理由を聞かないでください。私はあなたに言うことができませんでした。

于 2012-08-10T22:27:10.917 に答える