Often you want to use functionality from a new version of iOS, but you also need to support older versions
iOS ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด API ๋ค์ด ์ถ๊ฐ๋๊ณ ์ SDK์์ ๊ฐ๋ฐํ๋ค ๋ณด๋ฉด ์ต์ OS์์๋ง ๋์ํ๋ ๋ฉ์๋๋ค์ ํธ์ถํ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์๋ค.ย ๊ทธ๋ฐ๋ฐ ๋ฌธ์ ๋ ๊ทธ๋ ๊ฒ ๊ทธ๋ฅ ๋ฐฐํฌ๊น์ง ๋๊ฐ๋ ๊ฒฝ์ฐ๋ ์๋ค๋ ๊ฒ.ย ๊ทธ๋ ๊ฒ ๋๋ฉด ํ์ ๋ฒ์ ์ OS๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ ์ฑ์ด ์ฃฝ๋๋ค๊ณ ๋ถํ์ ํ๊ณค ํ๋ค.ย ๊ทธ๋ ๋ค๊ณ ํด์ API๊ฐ ๋์ OS์์ ์ง์ํ๋ API์ธ์ง ์๋์ง ํ์ธํ ๋ฐฉ๋ฒ์ ์๋ค. ์ ํ Lab ์์ ํ ํฌ๋์ ์๊ฒ ํ์ธํ ๋ด์ฉ. ํธ์ถํ๊ธฐ ์ ์ ํ์ธ์ ํด๋ณด๋ผ๋ ๊ฒ ๋ฟ์ด๋ค.
๊ฐ๋ฐ์๊ฐ ์ค์ํ ์ฌ์ง๊ฐ ๋ค๋ถํ๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ง์ํ๋ฉด ์ด๋จ๊น?
๋ฉ์๋ ๋จ์ ํธํ์ฑ ๋ณด์ฅ [NSObject -forwardInvocation:] ์ด์ฉํด ์ปค์คํ ๊ตฌํ์ผ๋ก ๋์ย
๊ฐ์ฒด ๋จ์ ํธํ์ฑ ๋ณด์ฅ drop-in ๊ฐ์ฒด๋ฅผ ๋ฐํํด์ ๋์ย
ํจ์๋ ์ฌ๋ณผ ๋จ์ ํธํ์ฑ ๋ณด์ฅ NSString์ผ๋ก ํ์ธํ ์ ์๋ ๊ตฌํ์ฒด ์ถ๊ฐย
์ 3๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ง์ํ ๊ณํ์ ํ๊ณ ์๋ค.
์ฌ์ฉ์ฑ์ ๋์ด๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ช๊ฐ์ง ์ถ๊ฐ ์๊ตฌ์ฌํญ์ด ์๋ค.
๋ฉ์๋๊ฐ ์๋ ๊ฒฝ์ฐ ์ฑ์ด ํฌ๋์ ๋๋๋ฐ ์ ํ์ ์ผ๋ก ๋ก๊น ๋ง ๋จ๊ธฐ๋ ์๋ฌด๋ฐ ๋์์ ํ์ง ์๋ ๋ฐฉ์๋ ์ง์ํ๊ณ ์ ํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฌ์ฉ๋๋ค๋ฉด ๋ ํ์ํ ๊ฒ์ด ๊ฒฐ๊ณผ ๋ฐ์ด๋๋ฆฌ์ ์ต์ํ ์ผ ๊ฒ์ด๋ค.ย framework๋ archive๋ก ์ ๊ณต๋๋ค๋ฉด ์๋ฏธ๊ฐ ์๊ฒ ์ง๋ง.ย CocoaPods๋ฅผ ํตํด ์ ๊ณตํ ์ ์๋ค๋ฉด Target OS์ ๋ฐ๋ผ ๊ตฌํ์ฒด๋ค์ ์กฐ์ ํ ์ ์๋ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด์ผ ํ ๊ฒ์ด๋ค.
์ด๋ฏธ ํ๋ก์ ํธ๋ ์์ํ๋ค. ๋ถ๋๋ฝ์ง๋ง ์ด๋ฆ๋ ์กฐ๊ธ ๊ฑฐ์ฐฝํ๊ฒ iOS-Compatibility ๋ก ๊ฒฐ์ ํ๋ค. ํ์ฌ๋ ๊ตฌํ์ฒด๊ฐ 1๊ฐ๋ง ์ง์ํ๊ณ ์์ด์ ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํ ์ํฉ์ด๋ค. ๋ถ๋ ๋ง์ ํฌ์๋ฅผ ํ ์ ์๊ฒ ๋๋น ์ค์ค๋ก์๊ฒ ๋ฐ๋๋ค.















