protocol

    [Swift] Protocols | Delegate๋ฅผ ์‚ด์ง ๊ณ๋“ค์ธ

    ํ”„๋กœํ† ์ฝœ์ด๋ž€? ํ”„๋กœํ† ์ฝœ: ์ตœ์†Œํ•œ์œผ๋กœ ๊ฐ€์ ธ์•ผํ•  ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•ด๋‹น Object๊ฐ€ task๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์„ ์ •์˜ํ•ด์ค€๋‹ค. Java์˜ interface์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. protocol์€ ์„ ์–ธ์ด๊ณ , type์—์„œ ๊ตฌํ˜„ํ•ด์ค˜์•ผํ•œ๋‹ค. ex1) Swift์—์„œ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ ์˜ˆ์‹œ ์ค‘ ํ•˜๋‚˜์ธ CustomStringConvertible์„ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ํ‹€๋Œ€๋กœ class๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. var greeting = "Hello, playground" class person: CustomStringConvertible { let name: String let age: Int let isFemale: Bool init(name: String, age: Int..