๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป iOSun
article thumbnail
[ARC] CFGetRetainCount ํ•จ์ˆ˜๋กœ ์ฐธ์กฐ ํšŸ์ˆ˜ ์„ธ๋ณด๊ธฐ
iOS 2024. 2. 8. 19:11

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..

article thumbnail
[iOS] ์ฝ”๋“œ ๋ฒ ์ด์Šค๋กœ ํ”„๋กœ์ ํŠธ ์„ธํŒ…ํ•˜๊ธฐ
iOS 2024. 1. 21. 18:34

ํ”„๋กœ์ ํŠธ ์„ธํŒ…ํ•  ๋•Œ๋งˆ๋‹ค ์ฐพ์•„๋ด์„œ ์ด๋ฒˆ ๊ธฐํšŒ์— ์ •๋ฆฌํ•˜๋ ค ํ•œ๋‹ค. 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(..

article thumbnail
[SwiftUI] Custom TabView ๊ตฌํ˜„
iOS 2023. 6. 16. 14:12

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: ..

article thumbnail
[iOS] NotificationCenter ๋™์ž‘ ๋ฐฉ์‹๊ณผ ํ™œ์šฉ ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์‹œ์˜ค.
iOS 2023. 3. 31. 20:32

NotificationCenter๋ž€? observer(๊ด€์ฐฐ์ž)์—๊ฒŒ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์•Œ๋ฆผ ๋ฐœ์†ก ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์–ธ์ œ Notification ์„ผํ„ฐ๋ฅผ ์‚ฌ์šฉ? ์•ฑ ๋‚ด์—์„œ ๊ณต์‹์ ์ธ ์—ฐ๊ฒฐ์ด ์—†๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์ƒํ˜ธ์ž‘์šฉ์ด ํ•„์š”ํ•  ๋•Œ ์ƒํ˜ธ์ž‘์šฉ์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์ง€์†์ ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•  ๋•Œ ์ผ๋Œ€๋‹ค ๋˜๋Š” ๋‹ค๋Œ€๋‹ค ํ†ต์‹ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ 1. Observer(๊ด€์ฐฐ์ž) ๋“ฑ๋ก NotificationCenter.default.addObserver( self, selector: #selector(scrollToBottom), // ์•Œ๋ฆผ์„ ๋ฐ›์„ ๋•Œ ์ˆ˜ํ–‰ํ•  action name: NSNotification.Name("TestNotification"), object: nil ) ์•Œ๋ฆผ์„ ๋ฐ›๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์— observer๋ฅผ ๋“ฑ๋กํ•œ๋‹ค...

profile on loading

Loading...