SWIFT 31

[Swift] CoreData ํ™œ์šฉํ•ด๋ณด๊ธฐ (Subclass ์ƒ์„ฑ๋ฒ•, Double ํƒ€์ž… ์„ ์–ธ ์•ˆ๋˜๋Š” ์ด์œ )

CoreData๋ฅผ ํ™œ์šฉํ•ด์„œ ์ž‘์€ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ ์—ฐ์Šตํ•ด๋ณผ๊นŒํ•ฉ๋‹ˆ๋‹ค! ์ด๋ฆ„, ์„ฑ๋ณ„, ๋‚˜์ด๋ฅผ ์ž…๋ ฅํ•œ ํ›„์ €์žฅ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, CoreData์— ์ €์žฅ๋˜๊ณ ์ „์ฒด์‚ญ์ œ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.โ‘  ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์šฐ์„  ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  ํ•˜๋‹จ์— CoreData๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋Ÿฌ๋ฉด ์œ„์™€ ๊ฐ™์ด xcdatamodeld ํŒŒ์ผ์ด ์ž๋™ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.๋งŒ์•ฝ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰์ค‘์— CoreData๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค๋ฉด?๋”๋ณด๊ธฐCommand + N ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.โ‘ก Entity, Attributes, Relationships ์„ค์ •์ด์ œ ํ•˜๋‹จ Add Entity๋ฅผ ํด๋ฆญํ•ด์„œ Entity๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.์—ฌ๊ธฐ์„œ Entity์ด๋ฆ„์€ ์ค‘์š”ํ•˜๋‹ˆ๊นŒ ์ž˜ ๊ธฐ์–ตํ•˜๊ธฐ!(์ €๋Š” Testํ”„๋กœ์ ํŠธ๋ผ ์ œ ์ด๋ฆ„ Yegr๋ผ๊ณ  ์ง€์—ˆ..

Swift/Xcode 2024.12.12

[Swift] CoreData - ๊ณต์‹๋ฌธ์„œ ํŒŒํ—ค์น˜๊ธฐ

์˜ค๋Š˜ ์ •๋ฆฌํ•  ์ฃผ์ œ๋Š” Swift CoreData!!๊ทธ๋™์•ˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ UserDefaults์™€ Realm์„ ์‚ฌ์šฉํ•ด์™”๋Š”๋ฐ,์•Œ๋˜ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ CoreData๋ฅผ ์จ๋ณผ ๊ธฐํšŒ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค..๋ฐ”์œ ๊ณผ์ •๋„ ๋๋‚ฌ๊ณ ! ์ด์ œ๋Š” ๋ถ€์กฑํ•œ ๊ฐœ๋ฐœ ์ง€์‹์„ ์ฑ„์šธ ์‹œ๊ฐ„์ธ ๊ฒƒ ๊ฐ™์•„์„œ๊ณต๋ถ€ํ•  ๊ฒธ ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค๐Ÿ˜€์ฒ˜์Œ ๊ณต๋ถ€ํ•˜๋Š” ๋‚ด์šฉ์ด๋ผ ๊ณต์‹๋ฌธ์„œ ๋จผ์ € ์‚ดํŽด๋ณผ๊ฒŒ์š”. Core Data | Apple Developer DocumentationPersist or cache data on a single device, or sync data to multiple devices with CloudKit.developer.apple.com๋ถ€์กฑํ•œ ์˜์–ด์‹ค๋ ฅ์ด์ง€๋งŒ, ์ฐจ๊ทผ์ฐจ๊ทผ ํ•ด์„ํ•ด๋ณผ๊ฒŒ์š”. ํ‘ธํ•˜ํ•˜..(๋ฒˆ์—ญ์ด..

Swift 2024.12.01

[Swift] AutomaticDimension

์ข‹์€ ์ฝ”๋“œ ๊ตฌ์„ฑ์€ ์•„๋‹ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ AutomaticDimension์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ ์–ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!๊ธฐ๋ณธ ์…‹ํŒ… ์ฝ”๋“œ๋Š” ์•„๋ž˜ ์ ‘์€ ๊ธ€๋กœ ์ ์–ด๋‘๊ฒ ์Šต๋‹ˆ๋‹ค :)๋”๋ณด๊ธฐimport UIKitimport SnapKitclass ViewController: UIViewController { let tableView = UITableView() override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .white configureTableView() } func configureTableView() { view.addSu..

Swift 2024.06.03

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์‹œ์ € ์•”ํ˜ธ

func solution(_ s:String, _ n:Int) -> String { let upperStr = Array("abcdefghijklmnopqrstuvwxyz".uppercased()) let lowerStr = Array("abcdefghijklmnopqrstuvwxyz") var result = "" for i in s { // ๋Œ€๋ฌธ์ž์— ํฌํ•จ๋œ ๊ฒฝ์šฐ if upperStr.contains(i) { var indexNum = (upperStr.firstIndex(of: i) ?? 0) + n if indexNum > 25 { indexNum = inde..

[Swift] Escaping Closure

Escaping Closure(์ด์Šค์ผ€์ดํ•‘ ํด๋กœ์ €)์ด์Šค์ผ€์ดํ•‘ ํด๋กœ์ €๋Š” ํด๋กœ์ €๊ฐ€ ํ•จ์ˆ˜ ์ธ์ž๋กœ ์ „๋‹ฌ๋์„ ๋•Œ, ํ•จ์ˆ˜์˜ ์‹คํ–‰์ด ์ข…๋ฃŒ๋œ ํ›„์— ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜์—์š”!(์—์ž‡.. ํด๋กœ์ €๋„ ์–ด๋ ค์šด๋ฐ, ์ด์Šค์ผ€์ดํ•‘ ํด๋กœ์ €๋Š” ๋˜ ๋ชจ์•ผ??๐Ÿ˜ก์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค..ํ•˜ํ•˜ํ•˜) ๊ทธ๋ฆฌ๊ณ  ๋ฐ˜๋Œ€๋กœ Non-escaping Closure๋„ ์žˆ์–ด์š”.์ด๋…€์„์€ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— ์‹คํ–‰๋˜๋Š” ํด๋กœ์ €์ž…๋‹ˆ๋‹ค!์ด์ œ ์ฐจ๊ทผ์ฐจ๊ทผ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์ •๋ฆฌํ•ด๋ณผ๊ฒŒ์š”!! func escapingClosureEX(completion: () -> Void) { completion()}์ด์ œ ์ด๋Ÿฐ ํ˜•ํƒœ๋Š” ํด๋กœ์ €๋ผ๋Š” ๊ฑด ์•Œ ์ˆ˜ ์žˆ์ฃ ?ํด๋กœ์ €์˜ ๊ฐœ๋…์„ ์•„์ง ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด,์˜ค๋Š˜์€ ํด๋กœ์ €์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•ด๋ดค๋‹ค.์ด์ „์— ๊ณต๋ถ€ํ–ˆ์—ˆ๋Š”๋ฐ, ํ™•์‹คํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ„๊ฒŒ ์•„๋‹ˆ๋ผ์„œ ๋ง‰์ƒ ํด๋กœ์ €์— ๋Œ€ํ•ด์„œ ๋ง๋กœ ์„ค๋ช…ํ•˜๋ ค๊ณ  ..

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_4์ผ์ฐจ_TIL

์˜ค๋Š˜์€ swift ๋ฌธ๋ฒ• ๊ณต๋ถ€์™€ todoList ๋งŒ๋“ค๊ธฐ์—์„œ ํ•„์ˆ˜ ๊ตฌํ˜„ ์ด์™ธ์— ์ถ”๊ฐ€๋กœ ๊ตฌํ˜„ํ•ด ๋ณด๊ณ  ์‹ถ์€ ๋‚ด์šฉ ์‹œ๋„ํ•ด ๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. todoList ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์–ด์„œ UserDefault์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ดค๋Š”๋ฐ, struct ํƒ€์ž…์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ณต์žกํ•ด์„œ ์‹œ๋„๋งŒ ํ•ด๋ณด๊ณ , ์™„์„ฑ์€ ๋ชปํ–ˆ๋‹ค..๐Ÿ˜ญ ๋Œ€์‹ ์— Int ํƒ€์ž…์ด๋‚˜ ๋ฌธ์ž์—ด ๋ฐฐ์—ด ํƒ€์ž…์„ ์ €์žฅํ•˜๋Š” ์—ฐ์Šต์„ ํ•ด๋ดค๋‹ค. UserDefault๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ๊ณต๋ถ€๋ฅผ ์ข€ ๋” ํ•ด๋ณด๊ณ  ์ •๋ฆฌํ•˜๋ ค ํ•œ๋‹ค. ์˜ค๋Š˜์€ ๊ณต๋ถ€ํ–ˆ๋˜ Swift ๋ฌธ๋ฒ• ๊ด€๋ จํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ๋ณผ ์ƒ๊ฐ์ด๋‹ค. components & split components ์ฃผ์–ด์ง„ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ(separator)๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์ˆ˜์‹ ์ž์˜ ํ•˜์œ„ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ..

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_2์ผ์ฐจ_ToDoList ์•ฑ ๋งŒ๋“ค๊ธฐ_์„ ํƒ ๊ตฌํ˜„

์˜ค๋Š˜์€ Standard ๋ฐ˜ ๊ณผ์ œ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋‚ด์ผ 4์‹œ ์ „๊นŒ์ง€ ์—ฐ์Šตํ•ด๋ด์•ผํ•ด์„œ ์šด๋™ ๋‹ค๋…€์™€์„œ ์˜ค๋Š˜ ๋ฐค์—๋„ ์ด์–ด์„œ ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค..^0^ ์˜ค๋Š˜์€ ์ง€๋‚œ ๊ฒŒ์‹œ๊ธ€(TodoList ๋งŒ๋“ค๊ธฐ)์— ์ด์–ด์„œ '์ˆ˜์ •ํ•˜๊ธฐ' ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Standard ๋ฐ˜ ๊ณผ์ œ ๋‚ด์šฉ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ƒ๊ฐ์ด๋‹ค.๐Ÿง Todo ์ˆ˜์ •ํ•˜๊ธฐ ์ˆ˜์ •ํ•˜๊ธฐ ๊ธฐ๋Šฅ์€ ์ด์ „์— ๋“ฑ๋กํ•˜๊ธฐ์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค! ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ tableView ์ž…๋ ฅํ•ด์„œ 'Tells the delegate a row is selected.'๋ผ๊ณ  ์ ํ˜€์žˆ๋Š” ๊ฑฐ ์„ ํƒ! ์ด์ œ ์ฝ”๋“œ์— ๋„ฃ์€ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ค˜์•ผํ•œ๋‹ค. ์ด์ „์— ์ถ”๊ฐ€ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด, ๋“ฑ๋กํ•˜๊ธฐ alert ๋„์› ์„ ๋•Œ์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค. ๊ฐ€์ง€๊ณ ์™€์„œ ๋‚ด์šฉ๊ณผ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์ฃผ๊ณ , ์ˆ˜์ •ํ•ด๋„ ์Šค์œ„์น˜ on/off ์ƒํƒœ๋Š” ๋ณ€ํ•˜์ง€ ์•Š์•„์•ผ ..

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_1์ผ์ฐจ_ToDoList ์•ฑ ๋งŒ๋“ค๊ธฐ_ํ•„์ˆ˜ ๊ตฌํ˜„

TIL>์˜ค๋Š˜์€ TodoList ๋งŒ๋“ค๊ธฐ ๊ฐœ์ธ๊ณผ์ œ ๊ตฌํ˜„ ๊ณผ์ •์„ ์ฐจ๊ทผ์ฐจ๊ทผ ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.โ˜บ๏ธ์ด์ „์— ์ผ๋˜ ์ฝ”๋“œ ๋‹ค์Œ ๋‚  ๊นŒ๋จน๊ณ ..๋‹ค์‹œ ๋‡Œ ๋ฆฌ์…‹^-^ ํ•˜๋ฃจ ์ข…์ผ ๋ฉ˜ํƒˆ ๋ฐ”์‚ฌ์‚ฌ์‚ญ๐Ÿ’ช๐Ÿป๋‹ค์‹œ ์ฐจ๊ทผ์ฐจ๊ทผ ์‹œ์ž‘..!^^์—ญ์‹œ ์ •๋ฆฌ๋ฅผ ํ•ด์•ผ ์•ˆ ๊นŒ๋จน๊ณ  ๊ธฐ์–ต์— ์˜ค๋ž˜ ๋‚จ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.ใ…Žใ…Ž ์ด๋ฒˆ TodoList ์•ฑ ๋งŒ๋“ค๊ธฐ ๊ฐœ์ธ๊ณผ์ œ ์†Œ๊ฐœ๋Š”(4์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_5์ผ์ฐจ) ๊ฒŒ์‹œ๋ฌผ์— ์ •๋ฆฌ๋˜์–ด์žˆ๋‹ค.  4์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_5์ผ์ฐจ_ToDoList ๋งŒ๋“ค๊ธฐ_TIL์˜ค๋Š˜์€ 4์ฃผ์ฐจ ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ ๊ฐœ์ธ๊ณผ์ œ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.๐Ÿ˜ƒ ํ•˜..์–ด๋ ต๋‹ค..ใ…Žใ…Žใ…Ž.. ์˜ค๋Š˜ ์–ด๋А ์ •๋„ ๊ตฌํ˜„ํ•˜๊ธด ํ–ˆ๋Š”๋ฐ, ํ•„์ˆ˜ ๊ตฌํ˜„๊นŒ์ง€ ์™„์„ฑํ•˜๋ ค๋ฉด ์•„์ง ํ•  ๊ฒŒ ๋งŽ์•„์„œ ๊ตฌํ˜„ํ•œ ๋ถ€๋ถ„๊ณผ ์ฝ”๋“œ ์ •๋ฆฌ๋Š” ๋‚˜์ค‘์— ๋‹คyegenie-coding.tistory.com ์Šคํ† ๋ฆฌ๋ณด๋“œ - ๊ธฐ๋ณธ UI ๊ตฌ์„ฑ ..