showAlert ๋ฉ์๋๋ ๋น๋๊ธฐ ์ฝ๋์
๋๋ค. ์ ํํ ๋งํ๋ฉด, UIAlertController๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฆผ์ ๋์ฐ๋ ์์
์ ๋น๋๊ธฐ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๋น๋๊ธฐ ๋์์ ๊ฐ๋
UI ๊ด๋ จ ์์
์ ๋น๋๊ธฐ์ฑ:UIAlertController๋ฅผ ํ๋ฉด์ ํ์ํ๋ ์์
์ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ด๋ present(_:animated:completion:) ๋ฉ์๋๊ฐ ํธ์ถ๋ ํ, ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๊ฐ ์
๋ฐ์ดํธ๋๋ ๋ฐฉ์๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์ฆ, present(_:animated:completion:) ํธ์ถ ํ UI๊ฐ ์
๋ฐ์ดํธ๋ ๋๊น์ง ์ฝ๋ ์คํ์ด ์ผ์ ์ค๋จ๋์ง ์๊ณ ๊ณ์ ์งํ๋ ์ ์์ต๋๋ค. ๋น๋๊ธฐ ๋ฉ์๋์ Completion Handler:UIAlertController์ present(_:animated:compl..
๐ iOS/Swift
UITextFieldUITextField๋ ์ฌ์ฉ์๋ก๋ถํฐ ํ
์คํธ ์
๋ ฅ์ ๋ฐ์ ์ ์๋ ์ธํฐํ์ด์ค ์์์ด๊ณ , ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด์ UITextField์ ๋์์ ์ปค์คํฐ๋ง์ด์งํ๊ณ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. textField.delegate = self -> ํ
์คํธํ๋์ ๋๋ฆฌ์๊ฐ ๋ทฐ์ปจ์ด ๋จ. ํ
์คํธํ๋์์ ์ผ์ด๋๋ ์ผ ์ ๋ฌ ๋ฐ์ํ
์คํธํ๋์์ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋ฉด ๊ทธ ์์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๋ฌํ ํ
๋ ๋ฉ์๋๋ฅผ ์ฑํํ๊ณ ๊ตฌํํ๋ผ. textField.becomeFirstResponder() //ํค๋ณด๋ ์ฌ๋ผ์ดtextField.resignFirstResponder() //ํค๋ณด๋ ๋ด๋ ค๊ฐ ์ฃผ์ UITextField Delegate ๋ฉ์๋์ ์ฌ์ฉ ์์ textFieldShouldBeginEditing(_:)ํ
์คํธ ํ๋..
๐ 1 . ํ๋กํ ์ฝํ๋กํ ์ฝ์ ํน์ ๊ธฐ๋ฅ์ด๋ ํน์ฑ์ ๊ตฌํํ ๋ ํ์ํ ๋ฉ์๋๋ ํ๋กํผํฐ์ ์ฒญ์ฌ์ง์ ์ ๊ณตํ๋ค.ํ๋กํ ์ฝ์ ์ ์ธํ ๋๋ ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ด ์๊ณ ํํ๋ง ์ ๊ณตํ๋ค. ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ ์ด ํ๋กํ ์ฝ์ ์ฑํํ๋ ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ, extension ๊ฐ์ฒด์์ ๋ด๋นํ๋ค. ํ๋กํ ์ฝ์ ์ ์๋ ๋ฉ์๋์ ํ๋กํผํฐ๋ฅผ ๋ฐ๋์ ๊ตฌํ ํ๋ค. protocol Drawable { var name: String { get } // ์ฝ๊ธฐ ์ ์ฉ ํ๋กํผํฐ func draw ()}//ํ๋กํ ์ฝ ์ฑํclass Circle: Drawable { var name: String { //๊ณ์ฐ ํ๋กํผํฐ return "Circle" } func draw() { ..
์ธ์คํด์ค ๋๋ ํ์
์ ๋ถ๋ถ์ธ ์ ์ฅ๋ ๊ฐ๊ณผ ๊ณ์ฐ๋ ๊ฐ์ ์ ๊ทผํ๋ค. ํด๋์ค๋ ๊ตฌ์กฐ์ฒด์์ ๊ฐ์ ์ ๊ณตํ๋ ์ญํ ์ ํ๋ค. ํ๋กํผํฐ๋ ๊ฐ์ ๋ํ ์ ์ฅ์ฌ๋ถ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ฅํ๋กํผํฐ์ ๊ณ์ฐํ๋กํผํฐ๋ก ๊ตฌ๋ถ๋๋ค. - ํ๋กํผํฐ์ ์์น: ํด๋์ค์ ๋ด๋ถ์, ๋ฉ์๋์ ์ธ๋ถ์ ์ ์ํ๋ค. ๋ฉ์๋ ๋ด๋ถ๋ ํ๋กํผํฐ๊ฐ ์๋ ์ง์ญ๋ณ์. 1. ์ ์ฅํ๋กํผํฐ ์์ ๋ฐ ๋ณ์๋ฅผ ์ฌ์ฉํด ์ ์ ๊ฐ๋ฅํ๋ฉฐ ์
๋ ฅ๋ ๊ฐ์ ์ ์ฅํ๊ฑฐ๋ ์ ์ฅ๋ ๊ฐ์ ์ ๊ณตํ๋ ์ญํ . ํด๋์ค์ ๊ตฌ์กฐ์ฒด์์๋ ์ฌ์ฉ๊ฐ๋ฅํ์ง๋ง ์ด๊ฑฐํ์์๋ ์ฌ์ฉํ ์ ์์. 1-1. ์ง์ฐ ์ ์ฅ ํ๋กํผํฐ(lazy)lazy ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉฐ, ํ๋กํผํฐ๊ฐ ํธ์ถ๋๊ธฐ ์ ๊น์ง๋ ์ ์ธ๋ง ๋ ๋ฟ ์ด๊ธฐํ ๋์ง ์๊ณ ํธ์ถ๋๋ ์์ ์ ์ด๊ธฐํ๋๋ค. ์ฒ์์ผ๋ก ํธ์ถ๋ ๊ฐ์ผ๋ก ์ด๊ธฐํ ๋๋ฉฐ, ๊ทธ ๋ค์๋ถํฐ ํธ์ถ ๋ ๋๋ ์ฒ์ ์ด..
import UIKitclass SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? // ์ฑ์ ์์ํ ๋ ์ธํ
ํด์ค ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ณณ. func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { // UIWindow ๊ฐ์ฒด ์์ฑ. guard let windowScene = (scene as? UIWindowScene) else { return } let window = UIWindow(windowScene: ..
์
์ฌ์ฌ์ฉ ๊ฐ๋
UICollectionView๋ ํ๋ฉด์ ํ์๋๋ ์
๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ๊ณ , ํ๋ฉด ๋ฐ์ผ๋ก ๋๊ฐ ์
์์ฌ์ฌ์ฉ ํ(reuse queue)์ ๋ฃ์ด์ ํ์ํ ๋ ๋ค์ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์คํฌ๋กคํ ๋ ๋งค๋ฒ ์๋ก์ด ์
์ ์์ฑํ์ง ์์๋ ๋์ด ์ฑ๋ฅ์ด ํฅ์๋๋ค. ์
๋ฑ๋ก ๊ณผ์ 1. ์
ํด๋์ค ๋ฑ๋กcollectionView.register(PosterCell.self, forCellWithReuseIdentifier: PosterCell.id) UICollectionView์ ์ด๋ค ํ์
์ ์
์ ์ฌ์ฉํ ์ง ๋ฑ๋กํด์ผ ํ๋ค. ์ด๋, register(_:forCellWithReuseIdentifier:) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค. 2. ์ฌ์ฌ์ฉ ์๋ณ์let cell = collectionView...
๐ฌ ์ ๋ค๋ฆญ ๋ฌธ๋ฒ์ด ํ์ํ ์ด์ ํ์
๋ง ๋ค๋ฅด๊ณ ๊ตฌํ ๋ด์ฉ์ด ๋์ผํ๋ฐ ๊ตณ์ด ํจ์๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ๋ฐ๋ณตํด์ ๋ง๋ค์ด์ผํ ํ์๊ฐ ์์๊น! ์ ๋ค๋ฆญ์ด ์๋ค๋ฉด ํจ์(๋ฟ๋ง ์๋๋ผ ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ๋ฑ๋ ๊ฐ๋ฅ) ํ์
๋ง๋ค ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค ์ ์ํด์ผํด์ ๊ฐ๋ฐ์์ ํ ์ผ์ด ๋ง์์ง๋ค. -> ์ ์ง๋ณด์/ ์ฌ์ฌ์ฉ์ฑ์ด ์ด๋ ค์ ์ฆ, ํจ์๋ฅผ ํ๋๋ง ๊ตฌํํ๋ฉด ๋ด๋ถ์ ์๋ ํ์
์ ์ธ์ ๋ ์ง ๋ฐ๊ฟ์ ์ฌ์ฉ ๊ฐ๋ฅ-> ์ ๋ค๋ฆญ์ด ์๋ค๋ฉด ํจ์๋ฅผ ๋ชจ๋ ํ์
๋ง๋ค ๋ค์ ์ ์ ํด์ ์ฌ์ฉํด์ผํ๋ค.-> ์ฌ๋ฌ๋ฒ ์ค๋ณตํด์ ๊ตฌํํด์ผํ๋ ํ์๊ฐ ์์ด์ง๋ค. ํ์
ํ๋ผ๋ฏธํฐ๋ ํจ์ ๋ด๋ถ์์ ํ๋ผ๋ฏธํฐ ํ์์ด๋ ๋ฆฌํดํ์ผ๋ก ์ฌ์ฉ๋๋ค. ํจ์ ๋ฐ๋์์ ์ฌ์ฉ๋ ๊ฐ๋ฅ.๋ณดํต T๋ฅผ ์ฌ์ฉํ์ง๋ง ๋ค๋ฅธ ์ด๋ฆ ์ฌ์ฉ๋ ๊ฐ๋ฅ. 2๊ฐ ์ด์๋ ๊ฐ๋ฅ. ๐ 1 . ์ ๋ค๋ฆญ ํจ์ ์ ์ํจ์ ์ด๋ฆ ์์ ..
์ง๋ ๊ธ๊ณผ ์ด์ด์ง๋ ๋งฅ๋ฝ์ด๋ค. ์ด๊ธฐํ ์์
์์ ๋ณผ ์ ์๋ init๊ณผ required init?์ด ๋ฌด์์ธ์ง ์์๋ณด์. ๐ https://dkswlgus0314.tistory.com/236 ๐ 1. init๊ณผ required init? ์ ๋ํด์๊ธฐ๋ณธ ์ด๋์
๋ผ์ด์ init๊ธฐ๋ฅ: ์ฌ์ฉ์ ์ ์ ์ด๋์
๋ผ์ด์ ๋ก, ํด๋์ค๊ฐ ์ธ์คํด์คํ๋ ๋ ํ์ํ ์ด๊ธฐํ ์์
์ ์ํํ๋ค.์ฌ์ฉ ์: ์ฃผ๋ก ํด๋์ค ์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋ ์ด๊ธฐ ์ํ๋ฅผ ์ค์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.ํ์ํ ์์ฑ๋ค์ ์ธ๋ถ์์ ๋ฐ์ ์ด๊ธฐํํ ์ ์๋ค.init(coreDataRepository: CoreDataRepository, mode: PhoneBookMode) { self.coreDataRepository = coreDataRepository self..