그래서 Xcode에서 친구의 작은 프로그램을 프로그래밍하고 있습니다.동일한 객체의 서로 다른 유형
개체의 여러 인스턴스를 초기화하고 배열에 넣은 다음 문자열을 반환하는 함수를 통해 반복하고 싶습니다. 각 객체는 반복 될 때 객체의 변수에 따라 해당 문자열에 텍스트를 추가합니다.
클래스가 트리라고 가정 해 보겠습니다. 클래스의 변수는 name (문자열), height (int) 및 hasLeaves (bool)입니다 (현재 나뭇잎에 날씨가 있거나없는 날씨). 나는 쉽게 인쇄 할 수 있습니다 :
"이것은 높이m 높이와 잎을이있는 이름입니다
문제 내가 문자열이 조금 다를 수 따라 할 것입니다. 나무의 종류에는이처럼 :. 오크 (이름)이 크고 lifeful입니다
, 그것의 높이미터 높이 잎은입니다.사과 나무 (이름은)는 키가 큰 높이를미터을 그리고 잎을 가지고, 어떤 사과를 전달합니다. 당신이 이제까지 스웨덴을 방문하는 경우
당신은 전나무 (이름)를 체크 아웃해야합니다, 그들은 높이 높이 잎 없어 있습니다.
나를 위해 코드를 작성하는 것을 원하지 않지만 실마리를 제공합니다. 나는 무엇을 찾을 지 모른다. 각 트리에 대한 하위 클래스를 만드는 것에 대해 생각하고 있었지만 모든 하위 클래스는 프로그램에서 한 번만 나타났습니다. 필요한지 아닌지는 알 수 없습니다.
당신이 알고 있듯이, 나는이 질문을 공식화하는 데 어려움을 겪고 있습니다. 그러나 당신이 나의 의도를 이해한다면 나는 얻을 수있는 어떤 단서라도 기쁘게 생각합니다.
편집 : 그럼이 코드에서 보여 내 시도 :
등급 :
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)이 정적이되도록하고 싶습니다. 그래서 그것이 오크라면, 그 끈은 항상 "오, 참나무 오크"입니다.
"개체의 여러 인스턴스를 어떻게 초기화 하시겠습니까?" 값을 하드 코딩 하시겠습니까? 파일에서 읽으시겠습니까? 지금까지 작성한 코드를 보여주십시오. –
이 문제를 해결하는 방법에 대한 아이디어를 더 자세히 설명하고, 코드를 작성하고 여기에 게시하여 적절하게 작동하지 않는다고 생각하는 것을 강조하십시오. 질문은 지금과 같이 너무 일반적이어서 곧 닫힐 수 있습니다. 화제 떨어져 있으십시오 – Antonio
안녕, 당신의 대답을위한 감사합니다. 곧 일부 코드를 게시 할 예정입니다. 너에게, 롭, 나는 틀린 말을 쓸지도 몰라. 나는 방금 몇 달 전에 프로그래밍을 시작했다. – Mattias