์ด๋ฆ๋ง ๋ค์ผ๋ฉด ๊ต์ฅํ ์์ํ Fast Enumertaion์ ์ด๋ฏธ ์์ฃผ ์ฌ์ฉ์ค์ผ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
Objective-C์์๋ Fase enumeration, Swift์์๋ NSFastEnumeration ํ๋กํ ์ฝ์ ์ฐพ์๋ณด๋ฉด ๋๋ค.
Fast enumeration์ ์ ์๋ ๋ค์๊ณผ ๊ฐ๋ค.
Fast enumeration is a language feature that allows you to efficiently and safely enumerate over the contents of a collection using a concise syntax.
Fast enumeration์ ๊ฐ๊ฒฐํ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ์ปฌ๋ ์ ์ ๋ด์ฉ์ ํจ์จ์ ์ด๊ณ ์์ ํ๊ฒ ์ด๊ฑฐํ ์ ์๋ ์ธ์ด ๊ธฐ๋ฅ์ ๋๋ค.
- ์ธ์คํด์ค๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ์งํฉ์ฒด์ ์ ๊ทผ์ ์ ๊ณตํ๋ ํด๋์ค๋ฉด
NSFastEnumeration
protocol ์ ์ฉ์ด ๊ฐ๋ฅํ๋ค. - Foundation framework์ ์๋ collection classes๋ค(
NSArray
,NSDictionary
,NSSet
)์ ์๋ก ๋ค ์ ์๋ค.
for ( Type newVariable in expression ) { statements }
Type existingItem;
for ( existingItem in expression ) { statements }
- ๋ ํํ์ ๋ชจ๋
NSFastEnumeration
ํ๋กํ ์ฝ์ ๋ฐ๋ฅด๋ ๊ฐ์ฒด๋ฅผ ์ฐ์ถํ๋ค. - ๋ฐ๋ณต ํฌ์ธํฐ (iterating variable :
newVariable
,existingItem
) ๋ ์ค๋ธ์ ํธ์ ํญ๋ชฉ ์์ง์ผ๋ก ๋ฃจํ๊ฐ ๋๋๋ฉดnil
์, ๋ฃจํ๊ฐ ์ผ์ฐ ์ข ๋ฃ๋๋ฉด ๊ฐ์ฅ ๋ง์ง๋ง์ ๊ฐ๋ฆฌํจ ์์ดํ ์ด ๋จ์ ์๊ฒ๋๋ค.
- ์ด๊ฑฐ์ ์์ด์
NSEnumerator
๊ฐ์ ๊ฒ๋ค์ ์ง์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ ํจ์จ์ ์ด๋ค. - ๋ฌธ๋ฒ์ด ๊ฐ๋จํ๋ค.
- ์์ ํ๋ค.
- ์ด๊ฑฐ ์ค์ ์งํฉ์ฒด๋ฅผ ์์ ํ๋ฉด exception ๋ฐ์ํ๋ค. ์ด๊ฑฐ์ฒด๋ฅผ ๋ณํ์ ํ์์ ์ผ๋ก ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์์ ํ๋ค.
- ์ผ๋ฐ
for
๋ฌธ์ฒ๋ผ ๋์ํ๊ธฐ ๋๋ฌธ์break
๋continue
๋ฅผ ์ฌ์ฉํ ์ ์๋ค.