´ë¸Þ´º ¹Ù·Î°¡±â º»¹® ¹Ù·Î°¡±â

µ¥ÀÌÅÍ ±â¼ú ÀÚ·á

µ¥ÀÌÅÍ ±â¼ú ÀÚ·á »ó¼¼º¸±â
Á¦¸ñ ½ºÀ§ÇÁÆ® °í±Þ ¹®¹ý(¿­°ÅÇü°ú ÇÁ·ÎÆÛƼ)
µî·ÏÀÏ Á¶È¸¼ö 4227
÷ºÎÆÄÀÏ  

½ºÀ§ÇÁÆ® ÆÄÇìÄ¡±â

½ºÀ§ÇÁÆ® °í±Þ ¹®¹ý(¿­°ÅÇü°ú ÇÁ·ÎÆÛƼ)



½ºÀ§ÇÁÆ® ¾ð¾î¿¡¼­ »ç¿ëµÇ´Â ¿­°ÅÇü(Enumerations)°ú ±¸Á¶Ã¼, ¶Ç´Â ¿­°ÅÇü°ú °ªµéÀ» ¿¬°áÇØ ÁÖ´Â ¹æ½ÄÀÇ ÀÏÁ¾ÀÎ ¼Ó¼º(Properties)¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸°Ú´Ù. enum µîÀº ´Ù¸¥ ¾ð¾î¿¡¼­µµ ÀÚÁÖ »ç¿ëµÇ´Â ŸÀÔÀ̱⠶§¹®¿¡ ÀÌÇØ¿¡ ¾î·Á¿òÀÌ ¾øÁö¸¸, ½ºÀ§ÇÁÆ®ÀÇ ÇÁ·ÎÆÛƼ´Â ¿©·¯ °¡Áö ¹æ½ÄÀÇ Á¶ÇÕÀ¸·Î »ç¿ëµÈ´Ù.



¿­°ÅÇü(Enumerations)

¿­°ÅÇüÀº ÀϹÝÀûÀ¸·Î Á¤ÇØÁø Çü½ÄÀÇ °ªµéÀ» ±×·ìÀ¸·Î ¹­¾î¼­ Á¤ÀÇÇÏ´Â ¿ëµµ·Î »ç¿ëµÈ´Ù. C¾ð¾îµî¿¡¼­ ¿­°ÅÇüÀº Á¤¼öµéÀ» ±¸¼º ¿ä¼Ò·Î °¡Áö°í ÀÖÀ¸¸ç Á¤¼ö·Î °ªµéÀ» Ç¥ÇöÇÑ´Ù. ½ºÀ§ÇÁÆ® ¾ð¾î¿¡¼­ ¿­°ÅÇüÀº Á¤¼ö ÀÌ¿ÜÀÇ ´Ù¸¥ °ª(string, char, int, float)µéµµ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, Á» ´õ À¯¿¬ÇÏ°Ô Ç¥ÇöµÉ ¼ö ÀÖ´Ù. ¶ÇÇÑ, ÃʱâÀÇ Å¬·¡½º ¸â¹ö °ªÀ» Á¤ÇÒ ¶§ »ç¿ëÇÏ´Â À̴ϼȶóÀÌÀú(Initializer)¸¦ Á¦°øÇÒ ¼öµµ ÀÖ´Ù.

¡Ü ¿­°ÅÇüÀÇ ¹®¹ý
¿­°ÅÇüÀÇ Ç¥ÇöÇÒ ¶§´Â ´ÙÀ½°ú °°ÀÌ enum À̶ó´Â Ű¿öµå¸¦ »ç¿ëÇÏ°Ô µÈ´Ù.

enum Index {
// À̰÷¿¡ ¿­°ÅÇü¿¡ ÇØ´çµÇ´Â °ªµéÀ» ±â¼úÇÑ´Ù.
}

´ÙÀ½ ¿¹Á¦´Â ¿­°ÅÇüÀ» »ç¿ëÇØ¼­ ¸â¹ö°ªµéÀ» ³ª¿­ÇØ º» °ÍÀÌ´Ù. ¿©±â¼­ case Ű¿öµå´Â ¿­°ÅÇüÀÇ ¸â¹ö°ªµéÀÌ »õ·Î¿î ÁÙ¿¡ Á¤Àǵȴٴ Àǹ̴Ù. case ´ÙÀ½¿¡ »ç¿ëµÈ °ªµé(One, Two, Three, Four, Five)Àº C¾ð¾î³ª Objective-C¾ð¾î¿¡¼­ »ç¿ëÇß´ø ¼ø¼­¸¦ ÀǹÌÇÏ´Â Á¤¼ö·Î ¾´ °ÍÀÌ ¾Æ´Ï°í °¢°¢ÀÇ °ªµéÀÌ ¡®Index¡¯¶ó´Â ŸÀÔÀÇ ¸â¹ö·Î ¸í½ÃÀûÀ¸·Î »ç¿ëµÈ °ÍÀÌ´Ù.



enum Index { case One case Two case Three case Four case Five }



¿©·¯ÁÙ¿¡ ³ª´©¾î¼­ ±â¼úÇÑ °ªµéÀº ´ÙÀ½°ú °°ÀÌ ÄÞ¸¶ ±âÈ£(,)¸¦ »ç¿ëÇØ¼­ ÇÑÁٷΠǥ½ÃÇÒ ¼öµµ ÀÖ´Ù.



enum Index { case One, Two, Three, Four, Five }



»õ·Î¿î ¿­°ÅÇüÀ» Ç¥±âÇÒ ¶§´Â ¸Ç¾ÕÀ» ´ë¹®ÀÚ·Î ½áÁÖ°í º¹¼öÇüÀÌ ¾Æ´Ñ ´Ü¼öÇüÀ¸·Î ½áÁÖ´Â °ÍÀÌ ÀÚ¿¬½º·´°Ô º¸ÀϰÍÀÌ´Ù. ¿­°ÅÇüÀ» »ç¿ëÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ ÇØ´ç°ªÀ» »ç¿ëÇÏ°Ô µÇ´Âµ¥, º¹¼öÇüÀÌ¸é ¾î»öÇÏ°Ô º¸ÀÏ °ÍÀÌ´Ù.

var number = Index.One

À§ÀÇ Ç¥±â ¿¹¿¡¼­ number¶ó´Â ŸÀÔÀº ¿­°ÅÇü ¡®Index¡¯°¡ Ç¥±âÇÒ ¼ö ÀÖ´Â °ª ÁßÀÇ Çϳª°¡ µÇ°í ÃʱâÈ­ µÉ ¶§ ŸÀÔÀÌ Á¤ÇØÁø´Ù. ÀÌÈÄ¿¡ ³ª¿À´Â ¿­°ÅÇü ¸â¹ö°ªµéÀ» Ç¥½ÃÇÒ ¶§´Â ´ÙÀ½°ú °°ÀÌ ¡®Index¡¯¸¦ ¾²Áö ¾Ê¾Æµµ µÈ´Ù.

number = .Two

ÀÌ·¸°Ô Ç¥±âÇÏ¸é ¿­°ÅÇüÀÇ ¸â¹ö°ªÀ» Ç¥±âÇÒ ¶§ °¡µ¶¼ºÀÌ ³ôÀº Äڵ尡 µÉ ¼ö ÀÖ´Ù.

¡Ü ¿­°ÅÇü°ú ½ºÀ§Ä¡¹®ÀÇ »ç¿ë
ÀϹÝÀûÀ¸·Î C¾ð¾î µî¿¡¼­´Â ¿­°ÅÇüÀ¸·Î »ç¿ëÇÏ°Ô µÇ´Â °ª¿¡´Â Á¶°Ç µîÀ» ³ª¿­ÇÏÁö ¾Ê°í ´Ü¼øÈ÷ ¼ø¼­¸¸À» Àü´ÞÇÏ´Â °æ¿ì°¡ ´ëºÎºÐÀÌ´Ù. ÇÏÁö¸¸, ½ºÀ§ÇÁÆ®ÀÇ ¿­°ÅÇüÀ¸·Î Á¤ÀÇÇÑ °ªÀ» »ç¿ëÇÒ ¶§´Â ¼±ÅÃÇü ¹®ÀåÀÎ Switch ¹®À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ÀÇ ¿¹Á¦´Â Á¶°Ç¹®ÀÎ Switch ¹®À» »ç¿ëÇØ¼­ ¿­°ÅÇüÀÇ °ªÀ» Àü´ÞÇϱâ À§ÇÑ ÄÚµå´Ù.



var number = Index.One number = .Three switch number { case .One: print(¡°Ã¹¹øÂ° ¿­°ÅÇü °ª¡±) case .Two: print(¡°µÎ¹øÂ° ¿­°ÅÇü °ª¡±) case .Three: print(¡°¼¼¹øÂ° ¿­°ÅÇü °ª¡±) case .Four: print(¡°³×¹øÂ° ¿­°ÅÇü °ª¡±) case .Five: print(¡°´Ù¼¸¹øÂ° ¿­°ÅÇü °ª¡±) }



ÀÌ ¿¹Á¦¿¡¼­ numberÀÇ °ªÀ» .Three·Î ÀÔ·ÂÇßÀ¸¹Ç·Î °á°ú´Â <±×¸² 1>°ú °°ÀÌ Ãâ·ÂµÉ °ÍÀÌ´Ù. ÀÌ·±½ÄÀ¸·Î ¿­°ÅÇüÀ» switch ¹®À» »ç¿ëÇØ¼­ ¸í½ÃÀûÀ¸·Î Ç¥½ÃÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.





¶ÇÇÑ switch ¹®À» »ç¿ëÇÒ ¶§ Ưº°ÇÑ case¸¦ Á¦°øÇϱ⠰ï¶õÇÑ °æ¿ì ´Ù¸¥ ¾ð¾î¿Í ¸¶Âù°¡Áö·Î ´ÙÀ½ ÄÚµå·Î ±âº»°ªÀ» Àû¿ëÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù.

default:
print(¡°±âº»°ªÀÇ Àû¿ë¡±)

¡Ü ¿¬°üµÈ °ªÀÇ Àû¿ë
¾Õ¿¡¼­ ¿­°ÅÇü °ªÀ» Á¤ÀÇÇÏ´Â ¹æ¹ý°ú »ó¼ö¿Í º¯¼ö¸¦ ¿­°ÅÇü ŸÀÔ¿¡ Àû¿ëÇÏ´Â ¹æ½ÄÀ» È®ÀÎÇß°í, ±×°ÍÀ» switch ¹® µîÀ» ÅëÇØ¼­ Ȱ¿ëÇÏ´Â ¹æ¾È¿¡ ´ëÇØ¼­µµ ¾Ë¾Æ º¸¾Ò´Ù. À̿ܿ¡µµ ½ºÀ§ÇÁÆ®ÀÇ Æ¯Â¡Àº ¿©·¯ °¡Áö ŸÀÔÀ» ¿­°ÅÇüÀ¸·Î Áö¿øÇÑ´Ù´Â °ÍÀÌ´Ù. À̹ø¿¡´Â ¹ÙÄÚµå ŸÀÔÀ» ¿­°ÅÇüÀÇ ¸â¹ö·Î »ç¿ëÇØ¼­ ó¸®ÇÏ´Â °æ¿ì¸¦ »ìÆìº¸°Ú´Ù.

¹ÙÄÚµå´Â 14°³ Á¤µµÀÇ Á¾·ù°¡ ÀÖ°í, »óǰÀ̳ª µµ¼­µîÀÇ ºÐ·ù¸¦ À§Çؼ­ »ç¿ëÇÏ°Ô µÈ´Ù. °¡Àå Æò¹üÇÏ°Ô ¸·´ë ÇüÅ·ΠµÈ ¹ü¿ë »óǰ ±âÈ£(Universal Product Code, UPC)¸¦ Ç¥½ÃÇÏ´Â 1Â÷¿ø ¹ÙÄڵ尡 ÀÖ°í, µµÇü ÇüÅ·ΠµÈ Å¥¾ËÄÚµå(QR Code), µ¥ÀÌÅÍ ¸ÅÆ®¸¯½º(Data Matrix), ¸Æ½Ã ÄÚµå(Maxi code), ¸¶ÀÌÅ©·ÎÇǵð¿¡ÇÁ417 (MicroPDF417) µîÀÌ ÀÖ´Ù.





À̹ø ¿¹Á¦¿¡´Â 0~9±îÁö 10°³ÀÇ ¼ýÀÚ Á¶ÇÕÀ¸·Î »ç¿ëµÇ´Â UPC-A ŸÀÔÀÇ ¹ÙÄÚµå¿Í 3°³ÀÇ À§Ä¡ È®ÀÎ µµÇü°ú µ¥ÀÌÅÍ ¼¿ÀÇ ¿µ¿ªÀ¸·Î ÀÌ·ç¾îÁø Å¥¾ËÄÚµå ÇüŸ¦ »ç¿ëÇØ¼­ ±¸¼ºµÇ´Â °ÍµéÀ» ¾Ë¾Æº¸°Ú´Ù. A ŸÀÔÀÇ ¹ÙÄÚµå´Â ¼ýÀڷΠǥ½ÃÇÒ ¼ö Àֱ⠶§¹®¿¡ ´ÙÀ½°ú °°ÀÌ Æ©Ç÷Π¿­°ÅÇü ŸÀÔÀ» ´Ã·Á°¥ ¼ö ÀÖ´Ù. ¶ÇÇÑ Å¥¾ËÄÚµå, µ¥ÀÌÅÍ ¸ÅÆ®¸¯½º, ¸Æ½ÃÄÚµå µîÀº ¹®ÀÚ¿­ ŸÀÔÀ¸·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.



enum BarcodeIndex { case UPCA(Int, Int, Int, Int) case QRCode(String) case DataMatrix(String) case MaxiCode(String) } var BarcodeInfo = BarcodeIndex.UPCA(0, 12345, 67890, 5) BarcodeInfo = .QRCode(¡°ABCDEFGHIJK¡±) BarcodeInfo = .DataMatrix(¡°ABCDEF¡±) BarcodeInfo = .MaxiCode(¡°ABCDE¡±)



ÀÌÈĺÎÅÍ ¹ÙÄÚµåµéÀ» ´ÙÀ½°ú °°ÀÌ Æ¯Á¤ º¯¼ö·Î ÁöÁ¤ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº ¹ÙÄÚµå ŸÀÔÀÇ ¿­°ÅÇüÀ» BarcodeInfo¶ó´Â º¯¼ö¿¡ ÀúÀåÇÑ °æ¿ì´Ù.



var BarcodeInfo = BarcodeIndex.UPCA(0, 12345, 67890, 5) BarcodeInfo = .QRCode(¡°ABCDEFGHIJK¡±) BarcodeInfo = .DataMatrix(¡°ABCDEF¡±) BarcodeInfo = .MaxiCode(¡°ABCDE¡±)



À̰ÍÀº switch ¹®À¸·Î ´ÙÀ½°ú °°ÀÌ Ç¥ÇöµÉ ¼öµµ ÀÖ´Ù. ÀÌ ¶§ ¿­°ÅÇüÀÇ ¸â¹ö°ª¿¡ ´ëÇØ¼­ ÀÎÀÚ·Î »ç¿ëµÇ´Â »ó¼ö(let)³ª º¯¼ö(var)¸¦ ¸í½ÃÀûÀ¸·Î Ç¥½ÃÇØÁÙ ¼öµµ ÀÖ´Ù.



switch BarcodeInfo { case .UPCA(let num01, let num02, let num03, let num04): print(¡°UPC-A: (num01), (num02), (num03), (num04).¡±) case .QRCode(let str01): print(¡°QR code: (str01).¡±) case .DataMatrix(let str01): print(¡°DataMatrix: (str01).¡±) case .MaxiCode(let str01): print(¡°MaxiCode: (str01).¡±) default: print(¡°NA¡±) }



»ó¼ö³ª º¯¼öÀÇ Å¸ÀÔÀÌ case º°·Î ¸ðµÎ °°´Ù¸é caseÀÇ ¹Ù·Î ´ÙÀ½¿¡ ´ëÇ¥°ªÀ¸·Î Ç¥½ÃÇÒ ¼öµµ ÀÖ´Ù.



switch BarcodeInfo { case let.UPCA(num01, num02, num03, num04): print(¡°UPC-A: (num01), (num02), (num03), (num04).¡±) ¡¦ }



¡Ü ¿ø½Ã °ª(Raw Values)
ÇÁ·Î±×·¥ ¾ð¾î¿¡¼­ ¿­°ÅÇüÀ» »ç¿ëÇÒ ¶§ ¸â¹ö°ªÀ¸·Î ÇϳªÀÇ °ªÀ» ÁöÁ¤ÇÏ¸é ±× ÀÌÈÄ¿¡´Â ÀÚµ¿À¸·Î °ªÀÌ Áõ°¡ÇÏ´Â Çü½ÄÀ¸·Î ÀÚÁÖ »ç¿ëµÈ´Ù. ÀϹÝÀûÀ¸·Î Á¤¼öÇüÀ¸·Î ÁöÁ¤Çؼ­ »ç¿ëµÇ´Âµ¥ ½ºÀ§ÇÁÆ®¿¡¼­´Â ´Ù¸¥ Çü½Äµéµµ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ´Ù¸¸, Á¤¼öÇüÀÌ ¾Æ´Ñ ¿­°ÅÇü ¸â¹öµéÀº ¸ðµç °°Àº ŸÀÔÀ¸·Î ä¿ì´Â °ÍÀ» ±âº»À¸·Î ÇÑ´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°ÀÌ ¾î¶² ASCII ¹®ÀÚ¿¡ ´ëÇØ¼­ ¡®Character¡¯ÇüÀ¸·Î ¿­°ÅÇüÀ» ¼±¾ðÇßÀ» ¶§ ÁöÁ¤µÈ °æ¿ì°¡ ³ª¿À°Ô µÇ¸é ¿­°ÅÇüÀÇ ¿ø½Ã °ª(Raw Value)¿¡¼­ ÁöÁ¤ÇÑ Çü½ÄÀ¸·Î ÇØ¼®À» ÇÑ´Ù´Â Àǹ̴Ù.



enum ASCIIControl: Character { case Tab = ¡° ¡± case LineFeed = ¡° ¡± case CarriageReturn = ¡° ¡± }



Á¤¼öÇüÀÇ ¿­°ÅÇü ¸â¹ö°ªÀº ´ÙÀ½°ú °°ÀÌ Ç¥ÇöµÉ ¼ö ÀÖ´Ù. ´ÙÀ½¿¡¼­ ù¹øÂ° ¸â¹ö°ªÀÎ ¡®1¡¯ ÀÌÈÄ¿¡ ÀÚµ¿À¸·Î °ªÀÌ +1¾¿ Áõ°¡µÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ°í, ¿­°ÅÇüÀÇ ¸â¹ö°ª Áß¿¡¼­ ¡®Three¡¯°¡ ÀÌ·¯ÇÑ ±ÔÄ¢¿¡ µû¶ó¼­ 3À̶ó´Â °ªÀÌ ÇÒ´çµÈ °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.



¿ªÀ¸·Î ¿­°ÅÇüÀÇ ¼¼ ¹øÂ° °ªÀÌ ¡®Three¡¯¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ°Ô ÇØÁÖ´Â ¹æ¹ýÀÌ ÀÖ´Ù. ´ÙÀ½°ú °°ÀÌ rowValue¸¦ ÀÎÀÚ·Î »ç¿ëÇÏ¸é ¿­°ÅÇü¿¡¼­ ¡®3¡¯¿¡ ÇØ´çµÇ´Â ¸â¹ö°ªÀÌ ¾î¶² °ÍÀÎÁö ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù.



¡Ü ¿ø½Ã °ªÀ¸·Î ºÎÅÍÀÇ ÃʱâÈ­

¿­°ÅÇüÀÇ °ªÀ» ¿ø½Ã °ªÀ¸·ÎºÎÅÍ ÃʱâÈ­ ÇØ¾ßÇÒ °æ¿ì°¡ ÀÖ´Ù. ÀÌ·² ¶§ ´ÙÀ½°ú °°ÀÌ ¡®let¡¯ Ű¿öµå¸¦ »ç¿ëÇØ¼­ ¸í½ÃÀûÀ¸·Î ¿­°ÅÇü ¸â¹ö°ªÀ» ÁöÁ¤ÇØ ÁÙ ¼ö°¡ ÀÖ´Ù. <±×¸² 6>ÀÇ ÄÚµå´Â ¡®NumberPosition¡¯À̶ó´Â »ó¼ö¸¦ »ç¿ëÇØ¼­ ¸â¹ö°ªÀ» 7·Î ÁöÁ¤ÇÑ °æ¿ì´Ù.



ÇÁ·ÎÆÛƼ(Properties)

½ºÀ§ÇÁÆ®¿¡¼­ ÇÁ·ÎÆÛƼ´Â ÁַΠƯº°ÇÑ Å¬·¡½º¿Í ±¸Á¶Ã¼, ¿­°ÅÇüÀ» ¿¬°áÇØ ÁÖ´Â ¿ªÇÒÀ» ´ã´çÇÑ´Ù. °¢°¢ÀÇ ¼º°Ý¿¡ µû¶ó¼­ ÀúÀå ÇÁ·ÎÆÛƼ(Stored property), °è»ê ÇÁ·ÎÆÛƼ(Computed property), ŸÀÔ ÇÁ·ÎÆÛƼ(type property)·Î ³ª´©¾î¼­ ¼³¸íÇÒ ¼ö ÀÖ´Ù. °³¹ßÀÚ´Â À̵é ÇÁ·ÎÆÛƼ °ªÀÇ º¯°æ »çÇ× µîÀ» ÇÁ·ÎÆÛƼ ¿ÉÀú¹ö(property observer)¶ó´Â °ÍÀ¸·Î ¸ð´ÏÅ͸µÇÒ ¼ö ÀÖ´Ù.

¡Ü ÀúÀå ÇÁ·ÎÆÛƼ(Stored Properties)
ÀúÀå ÇÁ·ÎÆÛƼ´Â °¡Àå ´Ü¼øÇÑ ÇüÅ·ΠŬ·¡½º¿Í ±¸Á¶Ã¼ÀÇ ÀνºÅϽº¿¡ ÀúÀåµÉ ¼ö ÀÖ´Â »ó¼ö³ª º¯¼ö¸¦ Ç¥ÇöÇÒ ¶§ »ç¿ëÇÑ´Ù. ÀúÀåÇÒ ¶§ Ű¿öµå·Î ¼Ó¼ºÀ» ±¸º°ÇÒ ¼ö ÀÖ´Ù. º¯¼ö´Â var, »ó¼ö´Â letÀ¸·Î ¼±¾ðÇÒ ¼ö ÀÖ´Ù. °³¹ßÀÚ´Â ÀúÀå ÇÁ·ÎÆÛƼ¸¦ À§ÇÑ ÃʱⰪÀ» ÁöÁ¤ÇÒ ¼ö Àִµ¥, ´Ü¼øÈ÷ ÇÁ·ÎÆÛƼ·Î ¼±¾ðÇÑ »ó¼ö³ª º¯¼ö ´ÙÀ½¿¡ °ªÀ» ½áÁÖ¸é µÈ´Ù. »ó¼ö·Î ¼±¾ðµÈ ÇÁ·ÎÆÛƼ´Â Çѹø »ý¼ºµÇ¸é ¼öÁ¤ÇÒ ¼ö ¾ø´Ù.

¡Ü °è»ê ÇÁ·ÎÆÛƼ(Computed Properties)
°è»ê ÇÁ·ÎÆÛƼ´Â ½ÇÁ¦·Î °ªÀ» ÀúÀåÇÏ´Â ¼ºÁúÀº °¡Áö°í ÀÖÁö ¾Ê°í, ´Ù¸¥ ÇÁ·ÎÆÛƼ³ª °ªÀ» ÅëÇØ¼­ °£Á¢ÀûÀ¸·Î Á¦°øÇÏ´Â getter¿Í setterÀÇ ¿ªÇÒÀ» ´ã´çÇÑ´Ù. ÁÖ·Î ÁÂÇ¥ µîÀÇ °è»êÀ» ¼öÇàÇÏ´Â ÇÔ¼ö µî¿¡¼­ »ç¿ëµÈ´Ù.

¡Ü ÇÁ·ÎÆÛƼ ¿ÉÀú¹ö(Property Observers)
ÇÁ·ÎÆÛƼ ¿ÉÀú¹ö´Â ÇÁ·ÎÆÛƼ °ªÀÇ º¯°æ »çÇ×À̳ª ÇÒ´çµÇ´Â ¼ø°£¿¡ À̺¥Æ®¸¦ ¹ß»ý½ÃÄѼ­ °ªÀ» ¸ð´ÏÅ͸µ ÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â µµ±¸´Ù. °ªÀÌ ÀúÀåµÇ±â Àü¿¡ È£ÃâµÇ´Â willSet°ú »õ·Î¿î °ªÀÌ ÀúÀåµÉ ¶§¸¶´Ù È£ÃâµÇ´Â didSetÀ̶ó´Â ¿É¼ÇÀÌ ÀÖ´Ù. ¸¸¾à willSetÀÌ ±¸ÇöµÅ¼­ Æ÷ÇÔµÈ´Ù¸é »õ·Î¿î ÇÁ·ÎÆÛƼ °ªÀº newValue¶ó´Â »ó¼ö ÇüÅÂÀÇ ÀÎÀÚ·Î Àü´ÞµÉ ¼ö ÀÖ´Ù. didSetÀº ÀÌÀüÀÇ ¼Ó¼º°ªÀ» »ó¼ö ÀÎÀÚ·Î Àü´ÞÇÏ°Ô µÇ°í, oldValue¶ó´Â À̸§À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.



´ÙÀ½ÀÇ ÄÚµå´Â ÇÏ·ç µ¿¾È À̵¿ÇÑ °Å¸®¸¦ ÃøÁ¤ÇÏ´Â ¿¹Á¦´Ù. ¿©±â¼­ newValue(=newTotalSteps)¿Í oldValue¿¡ ÇØ´çµÇ´Â °ªÀ» »ç¿ëÇØ¼­ º¯°æµÇ´Â µ¿ÀÛµéÀ» ¸ð´ÏÅ͸µÇß´Ù. À̿ܿ¡µµ Àü¿ª º¯¼ö¿Í Áö¿ª º¯¼ö¸¦ ¸ð´ÏÅ͸µÇÏ´Â ¹æ¹ýÀ» Á¦°øÇϰí ÀÖ°í, ŸÀÔ ÇÁ·ÎÆÛƼ¸¦ »ç¿ëÇØ¼­ Ŭ·¡½º¿Í ±¸Á¶Ã¼µîÀÇ °ª¿¡ ´ëÇØ¼­ º¯µ¿À» ¸ð´ÏÅ͸µ ÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù.

À̹ø È£¿¡¼­´Â ½ºÀ§ÇÁÆ® ÇÁ·Î±×·¥¿¡¼­ »ç¿ëµÇ´Â ¿­°ÅÇü°ú ÇÁ·ÎÆÛƼµé¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸¾Ò´Ù. ´Ù¸¥ ÇÁ·Î±×·¥ ¾ð¾î¿Í À¯»çÇÑ ¹æ½ÄÀ¸·Î ¿­°ÅÇü°ú ÇÁ·ÎÆÛƼµéÀ» »ç¿ëÇϰí ÀÖÁö¸¸ Á» ´õ ´Ù¾çÇÑ Å¸ÀÔµéÀ» ¿­°ÅÇü¿¡ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ¶ÇÇÑ, ±¸Á¶Ã¼¿Í Ŭ·¡½º µî¿¡¼­ »ç¿ëµÈ °ªµéÀ» ¸ð´ÏÅ͸µ ÇÒ ¼ö ÀÖµµ·Ï ÇÁ·ÎÆÛƼ ¿ÉÀú¹ö µî°ú °°Àº ¹æ½ÄÀ» Á¦°øÇؼ­ °³¹ßÀÚµéÀÌ Å¬·¡½º³ª ±¸Á¶Ã¼¿¡¼­ »ý¼ºÇÑ ÀνºÅϽºÀÇ °ªµéÀ» µð¹ö±ëÇϱ⠽±µµ·Ï µµ¿ÍÁØ´Ù.



Ãâó : ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î 8¿ùÈ£

Á¦°ø : µ¥ÀÌÅÍ Àü¹®°¡ Áö½ÄÆ÷ÅÐ DBguide.net