2014-12-13 53 views
1
对象的随机量

基本上,我试图做这家伙正在试图做的,但斯威夫特:声明斯威夫特

Declaring a random amount of objects in c++

我很新的节目,非常新斯威夫特,所以我对如何做某些事情有些模糊。基本上,我只是想宣布我的球员必须编织的随机数量的敌人,并在他击中其中一个敌人时进行登记。我一直在寻找答案的每一个地方,或者这是一个非常愚蠢的问题,愚蠢的是,从来没有人需要把它放到网上,或者Sift对于别人来说太新了。我猜这是一个愚蠢的问题,但不管我如何解决这个问题都没有想法。

谢谢。

回答

0

Swift数组是动态的,至少是用var array声明的可变类型。
所以你可以直接添加对象到你的数组中,直到你有足够的对象。

如:

var objects = [String]() 

//let numberOfObjects = arc4random_uniform(10) // between 0 and 9 
let numberOfObjects = arc4random_uniform(5) + 5 // between 5 and 9 
for i in 0..<numberOfObjects { 
    let object = String() 
    objects.append(object) 
} 


println("we have \(countElements(objects)) objects") 
0

也许我太密集理解的问题,但在我看来,仅仅宣布一个NSMutableArray会做你想要什么:

let myArray:NSMutableArray = NSMutableArray() 

你将不得不所有的灵活性可以随意添加或移除物体。

在任何给定的循环中,您可以删除所有对象,然后使用随机数生成器来添加随机数目的对象,如果这是您正在尝试执行的操作。

我在其他答案,这额外的评论是,我会明确地类型,产生随机数的声明投下的一切:

​​3210
0

下面是一个使用简单的敌对阶级的例子:

class Enemy : NSObject { 
    override init() { 
     super.init() 
    } 
} 

let range = (5, 20) 
let numEnemies = Int(arc4random_uniform(UInt32(range.1 - range.0) + 1) + UInt32(range.0)) 
var enemyArray = [Enemy]() 

for i in 0..<numEnemies { 
    enemyArray.append(Enemy()) 
} 
0

你想要一个数组中的随机数的对象。假设:

class MyObject {} 

和你有对象的数量上限:

let theObjectLimit = 10 

,那么你可以创建MyObject新的,不同实例的随机数与简单:

let theObjects = (1...arc4random_uniform(theObjectLimit)).map { 
    _ -> MyObject in return MyObject() 
} 

当学习像Swift这样的语言,它具有头等功能(又称闭包)时,您将需要使用像mapreduce这样的函数w尽可能 - 尤其是代替迭代。