Skip to content

Latest commit

ย 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
ย 
ย 

์ค‘์ฒฉ ํƒ€์ž…(Nested Types)

  • ์ค‘์ฒฉ ํƒ€์ž…์ด๋ž€? โ†’ ํƒ€์ž… ๋‚ด๋ถ€์— ํƒ€์ž…์„ ์„ ์–ธํ•˜๋Š” ๊ฒƒ
class Aclass {
	struct Bstruct {
		enum Cenum {
			case aCase
			case bCase

			struct Dstruct {
			
			}
		}
		var name: Cenum
	}
}

let bStruct: Aclass.Bstruct = Aclass.Bstruct(name: .bCase)
let cEnum: Aclass.Bstruct.Cenum = Aclass.Bstruct.Cenum.aCase
let dStruct: Aclass.Bstruct.Cenum.Dstruct = Aclass.Bstruct.Cenum.Dstruct()

์ค‘์ฒฉ ํƒ€์ž…์€ ํŠน์ • ํƒ€์ž… ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ, ํƒ€์ž… ๊ฐ„์˜ ์—ฐ๊ด€์„ฑ์„ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ณ  ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋””ํ…Œ์ผํ•˜๊ฒŒ ์„ค๊ณ„๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.


  • ๋ฉ”์‹œ์ง€๋ฅผ ์ค‘์ฒฉํƒ€์ž… ๋ชจ๋ธ๋กœ ์„ค๊ณ„ ํ•œ๋‹ค๋ฉด?
class Message {
	private enum Status {
		case sent
		case received
		case read
	}
	
	// ๋ณด๋‚ธ์‚ฌ๋žŒ, ๋ฐ›๋Š” ์‚ฌ๋žŒ
	let sender: String, recipient: String, content: String

	// ๋ณด๋‚ธ ์‹œ๊ฐ„
	let timeStamp: Date
	
	// ๋ฉ”์‹œ์ง€์˜ ์ƒํƒœ ์ •๋ณด
	private var status = Message.Status.sent

	init(sender: String, recipient: String, content: String) {
		self.sender = sender
		self.recipient = recipient
		self.content = content

		self.timeStamp = Date()
	}

	func getBasicInfo() -> String {
		return "๋ณด๋‚ธ์‚ฌ๋žŒ:\(sender), ๋ฐ›๋Š”์‚ฌ๋žŒ:\(recipient),
					  ๋ฉ”์„ธ์ง€ ๋‚ด์šฉ:\(content), ๋ณด๋‚ธ ์‹œ๊ฐ„:\(timeStamp.description)"
	}

	func statusColor() -> UIColor {
		switch status {
		case .sent:
			return UIColor(red: 1, green: 0, blue: 0, alpha: 1)
		case .sent:
			return UIColor(red: 0, green: 0, blue: 1, alpha: 1)
		case .sent:
			return UIColor(red: 0, green: 1, blue: 1, alpha: 1)
		}
	}
}