所以,我在Xcode中编写了一个朋友的小程序。不同类型的同一个对象
我想初始化一个对象的几个实例,把它们放在一个数组中,然后遍历它(通过返回一个字符串的函数)。每个对象在迭代时都会向该字符串添加一些文本,具体取决于对象的变量。
假设这个班级是树。类中的变量是name(string),height(int)和hasLeaves(bool)(它现在有或没有留下的天气)。我可以轻松地打印:
“这是一个名是高度米高大有叶
问题是我想要的字符串是有点不同,这取决于。关于哪种树是这样的:
橡木(名)大和充满活力的,它的个头高度米和已离开。
苹果树(名)进行了一些苹果,这是高度米高大有叶。
你要是到瑞典,你应该看看冷杉(名),他们是高度高大没有得到叶。
我不希望你为我写代码,但给我一个线索。我不知道要寻找什么。我正在考虑为每个树创建一个子类,但每个子类只会在程序中出现一次,我不知道是否有必要。如你所知,即使制定这个问题我也很难,但如果你明白我的意图,我很高兴能得到任何线索。
编辑:所以这是我试图表明它在代码:
类:
class tree {
var treeHeight: Int?
var treeWidth: Int?
var hasLeaves: Bool
var treeString: String
init (height: Int?, width: Int?, leaves: Bool, theString: String) {
self.treeHeight = height
self.treeWidth = width
self.hasLeaves = leaves
self.treeString = theString
}
}
主要功能:
var oak: tree = tree(height: 1, width: 2, leaves: true, theString:"Oh, the mighty oak")
var appleTree: tree = tree(height: 1, width: 2, leaves: false, theString: "Yummy Apples")
var treeArray: Array = [oak, appleTree]
var resultString = "This is the stories of the trees: "
for tree in treeArray {
if tree.hasLeaves == true {
resultString = resultString + tree.theString
}
}
所以,我想要添加到“resultString”的字符串不同,取决于不管它是哪种树,但我不想在对象的初始化中设置该字符串,而是从它的“种类”树中设置该字符串。这是否更容易理解?
我希望字符串(treeString)是静态的,具体取决于树的“种类”。所以,如果它是橡树,弦总是“哦,可能橡木”。
你打算如何“初始化一个对象的几个实例”?你打算对这些值进行硬编码吗?从文件中读取它们?向我们展示您迄今为止编写的代码。 – 2014-09-29 19:36:10
你最好详细说明如何解决这个问题,写一些代码并在这里发布,突出你认为不能正常工作 - 你的问题,因为它是现在,它太通用了,它可能很快关闭关闭主题 – Antonio 2014-09-29 19:37:35
嗨,谢谢你的回复。我会很快发布一些代码。对你来说,罗伯,我可能会用错词,几个月前我刚刚开始编程。 – Mattias 2014-09-30 09:12:17