๊ทธ๋์ ํด์๋ ์ฌ์ด๋ ํ๋ก์ ํธ์ ๋ค๋ฅด๊ฒ ํ์ฌ ์ฑ์ ์ฌ์ด๋ ๊ด๋ฆฌ๋ฅผ ๋ชจ๋ ์๋์ผ๋ก ํ๊ณ ์์๋ค.(app target - signing&capabilities ์์ Automatically manage signing์ offํด๋๊ณ ์์) app target์ ์๋์ผ๋ก ์ค์ ์ ๊ณ ์ ํด ๋๊ณ Notification Extenion์ ์ถ๊ฐ ํ Automatically manage signing์ on ํด๋จ์ง๋ง ์์นด์ด๋น ๊ณผ์ ์์ ์๋ฌ๊ฐ ๋ฌ๋ค. ์๋ฌ ๋ฉ์ธ์งAutomatic signing cannot register bundle identifier "์ฑ ๋ฒ๋ค".Automatic signing cannot register bundle identifiers with Apple. Register your bundle iden..
swift์์ ์ฐธ์กฐ ํ์๋ฅผ ์ธ๋ ARC๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ค. ์ฐธ์กฐ ํ์๋ฅผ ๊ณ์ฐํ๋ ๋ฒ์ ์ธ์คํด์ค๋ฅผ ์์ฑ or ๊ธฐ์กด ์ธ์คํด์ค๋ฅผ ๋ค๋ฅธ ๋ณ์์ ๋์ ํ ๋ +1 ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์๊ฐ ํด์ ๋ ๋ or nil์ด ๋ ๋ -1 ๊ทธ๋ฆฌ๊ณ 0์ด ๋์์ ๋, ๋ฉ๋ชจ๋ฆฌ์์ ์๋์ผ๋ก ํด์ ๊ฐ ๋๋ค. ์ด๋ก ์ ์ผ๋ก ์ด๋ ๊ณ ,, ์ค์ ๋ก CFGetRetainCount ํจ์๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ฐธ์กฐ ํ์๋ฅผ ์ธ์ด๋ณด์. RC +1์ด ๋๋ ๊ฒฝ์ฐ class EmptyClass { } let myClass = EmptyClass() // RC +1 let myClass2 = myClass // RC +1 let myClass3 = myClass // RC +1 print(CFGetRetainCount(myClass)) // 4 print(CFGetRetai..
ํ๋ก์ ํธ ์ธํ ํ ๋๋ง๋ค ์ฐพ์๋ด์ ์ด๋ฒ ๊ธฐํ์ ์ ๋ฆฌํ๋ ค ํ๋ค. 1. Main ์คํ ๋ฆฌ๋ณด๋ ์ญ์ 2. Project target - Build Settings - main๊ฒ์ - UiKit Main Storybard File base Name ์ญ์ 3. info.plist - storybard Name ์ญ์ 4. SceneDelegate ์์ func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(..
SwiftUI๋ก ํ๋ก์ ํธ ์์ ์ ํ๋ฉด์ TabView๋ฅผ ํตํด ํญ๋ฐ๋ฅผ ๊ตฌํํ๋ค. TabView๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๊ฐ ๋งค์ฐ ๊ฐ๋จํ์ง๋ง.. ์ปค์คํ ์์ ์ ์ฐํ์ง ๋ชปํ๋ค. ํญ๋ฐ ๋ฐฐ๊ฒฝ์ ๋ณ๊ฒฝ (ํฐ์์ผ๋ก), ์คํฌ๋กค ํ ๋ ํฌ๋ช ๋ ์์ ๊ธฐ ํญ๋ฐ ๋์ด ๋ณ๊ฒฝ ํญ๋ฐ ๊ธ์จ์ฒด ๋ณ๊ฒฝ ์ ํด์ผํ๊ธฐ ๋๋ฌธ์ CustomTabView๋ฅผ ๋ง๋ค์๋ค. CustomTabView.swift import SwiftUI enum Tab { case calendar case feed } struct CustomTabView: View { @Binding var selectedTab: Tab var body: some View { HStack(alignment: .center) { Button { selectedTab = .calendar } label: ..