相关疑难解决方法(0)

什么是洗牌NSMutableArray的最佳方式?

如果你有NSMutableArray,你如何随机洗牌?

(我有自己的答案,发布在下面,但我是Cocoa的新手,我很想知道是否有更好的方法.)


更新:正如@Mukesh所述,从iOS 10+和m​​acOS 10.12+开始,有一种-[NSMutableArray shuffledArray]方法可用于改组.有关详细信息,请参阅https://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?language=objc.(但请注意,这会创建一个新数组,而不是将元素移动到位.)

cocoa shuffle objective-c

187
推荐指数
6
解决办法
8万
查看次数

在objective-c中混洗一个数组

可能重复:
什么是洗牌NSMutableArray的最佳方式?

我为iphone/iPad开发应用程序.我想要对存储在NSArray中的对象进行洗牌.有没有办法用objective-c来实现它?

iphone nsmutablearray nsarray ipad ios

10
推荐指数
1
解决办法
1万
查看次数

如何随机化NSArray?

假设我有一个内部有50-100个对象的NSArray.如何以随机顺序放置数组?

sorting random objective-c nsarray

2
推荐指数
1
解决办法
6102
查看次数

从数组中获取随机对象,如果对象相同,则获取一个新对象

我制作了一个笑话应用程序,用户生成一个笑话,笑话将显示在UILabel中.然而,我试图随机化笑话节目,但我不想两次显示相同的笑话.请问你能告诉我怎么做到这一点.我正在使用下面的代码尝试这样做,但它似乎无法正常工作.

- (IBAction)generateNewJoke {
if (i < [jokeArray count]) {
    i++;
        [userDefaults setInteger:[userDefaults integerForKey:kNewIndex] forKey:kOldIndex];

    int oldnumber = [userDefaults integerForKey:kOldIndex];
    int newnumber = [userDefaults integerForKey:kNewIndex];

    [answerLabel setText:@""];
    [userDefaults setInteger:i forKey:kNewIndex]; 

    if (oldnumber == newnumber) {
        NSLog(@"they are the same");
        [userDefaults setInteger:arc4random()%[jokeArray count] forKey:kNewIndex]; 
    }

    [jokeLabel setText:[jokeArray objectAtIndex:[userDefaults integerForKey:kNewIndex]]];

}
}
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c

1
推荐指数
1
解决办法
243
查看次数