์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
- Swift
- ๋ถํ ํ์
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์คํ
- Queue
- ios
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ๋ฐฑํธ๋ํน
- ๋ฐฑ์ค
- dfs
- ๋ถํ ์ ๋ณต
- BFS
- ๋์ ํฉ
- dp
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์์
- WebApp
- SwiftUI
- ๋ธ๋ฃจํธํฌ์ค
- ์ฝํ
- ์ด์งํ์
- ์ฝ๋ฉํ ์คํธ
- ๋ถํ ์ ๋ณต
- ๋ฌธ์์ด
- ๋นํธ์ฐ์ฐ์
- WebView
- Today
- Total
๋ชฉ๋ก๐ iOS ๊ฐ๋ฐ/Swift (8)
MUKER_DEV with iOS
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dcZA1c/btrGJFz95LM/GV4uZQCGZf4JTzRjoExcU1/img.png)
์น์ฑ์์ ๊ถํ์ ์์ฃผ๊ณ ์นด๋ฉ๋ผ๋ฅผ ์คํ์ํค๋ ํจ์๋ฅผ ๋ฐ์ํ๋ฉด ์ฑ์ด ๊ทธ๋ฅ ๊บผ์ ธ๋ฒ๋ฆฐ๋ค. ์นด๋ฉ๋ผ ์คํ ํจ์๋ ์น์ ์ฝ๋ฉ๋์ด ์์ด์ ๊ถํ๋ง ์ฃผ๋ฉด ๋๋ค. Xcode - ProjectNavigator - Info.plist ์ ๋ค์ด๊ฐ ๋ค์ ์ ์ผ ์์ ์๋ Information Property List ์์ Add Row๋ฅผ ํ๋ค. Privacy - Photo Library Additions Usage Description (์ฌ์ง ์ฌ์ฉ) ์ ์ถ๊ฐํ๊ณ Privacy - Camera Usage Description (์นด๋ฉ๋ผ ์ฌ์ฉ) ์ ์ถ๊ฐํ๋ฉด ๋๋ค. ๋๋ ์ฌ์ง์ฌ์ฉ ๊ถํ์ ์์ค๋ ์น์ฑ์์ ์ ์คํ์ด ๋๋๋ผ.. ๋ญ์งใ ใ Value๋ ํด๋น ๊ถํ์ ๋ถ์ฌํ ๋ ๋์ค๋ ์๋ฆผ์ฐฝ์ ๋ค์ด๊ฐ ์๋ฆผ๋ง์ ์ถ๊ฐํ๋ฉด ๋๋๋ฐ $(PRODUCT_NAM..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8oZNB/btrDHefVv93/dlpWn5I2Ho1JR6Re8RiIOk/img.png)
Firebase ํํ์ด์ง์์ ์ํ๋ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด ์ค๋ค์ ๋ฉ์ธํ์ด์ง์ ์๋ '์ฑ์ Firebase๋ฅผ ์ถ๊ฐํ์ฌ ์์ํ๊ธฐ'์์ ํด๋นํ๋ ํ๋ก์ ํธ๋ฅผ ์ ํํ๋ค iOS๋๋ฌ์ฃผ๊ณ Bundle Identifier์ ์๋ ์ด๋ฆ์ Apple ๋ฒ๋ค ID๋ก ์ ๋ ฅํด์คฌ๋ค ๋ฐ์ ์ฑ ๋๋ค์ํ๊ณ App Stroe ID๋ ๋์ค์ ์ฑ์คํ ์ด์ ์ฌ๋ฆฌ๋ฉด ๊ธฐ์ ํ ์ ์์ผ๋๊น ํจ์ค~ ๊ตฌ์ฑํ์ผ ๋ค์ด๋ก๋ ํด์ฃผ๊ณ ~ ๋ค์ด๋ก๋ ํด์ค ํ์ผ์ ํ๋ก์ ํธ์ ๋ฃ์ด์ค๋ค ๊ทธ๋ค์ Firebase SDK๋ฅผ ์ถ๊ฐ ํ๋ผ๊ณ ๋์ค๋๋ฐ ์ฐ๋ฆฐ CocoaPods ์ด์ฉํ๊ธฐ ๋๋ฌธ์ Package Manager๋ ์ ๊ฒฝ์์จ๋ ๋จ ์ฝ์ฝ์ ํ์ ๋ชฉ๋ก์ ๋ค์ด๊ฐ๋ณด๋ฉด ์น์ ํ ์ถ๊ฐ ๋ฐฉ๋ฒ์ด ๋์์๋ค ์ฐ๋ฆฐ Podfile์ ๋ง๋ค์ด ์คฌ์ผ๋๊น 1๋ฒ์ ๋๊ธฐ๊ณ Firebaseํฌ๋๋ฅผ ์ถ๊ฐํด์ผํ๋ค Firebase..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yYndf/btrDE0WhJWy/BjjxMnsZEiueUS06knjzz1/img.png)
๋จผ์ cocoa pod์ ์ค์น ๋ฐ ์ ๋ฐ์ดํธ ํ๋ค ๊ทธ๋ค์ ํ๋ก์ ํธ๊ฐ ์๋ ํด๋์ pod์ ์ค์นํด์ฃผ๋ฉด ๋๋๋ฐ ํฐ๋ฏธ๋์ ํด๋นํด๋๋ก ๊ฐ ์ ์๊ฒ cd ์ ๊ฒฝ๋ก๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ๋๋ค ๊ฒฝ๋ก๋ฅผ ์ฝ๊ฒ ๋ถ์ฌ์ฃผ๋ ๋ฐฉ๋ฒ์ ํด๋๋ฅผ ๋๋๊ทธ ํด์ ํฐ๋ฏธ๋์ ๋ฃ์ด์ฃผ๋ฉด ๊ฒฝ๋ก๊ฐ ์์์ ๋ฌ๋ค ๊ฒฝ๋ก์ pod init์ ํด์ฃผ๋ฉด ํด๋์ pod ํ์ผ์ด ์๋ ์ค์น๊ฐ ๋๋ค pod ํ์ผ์ ์ํ๋ pod์ ์ค์นํด์ฃผ๋ฉด ๋๋ค!
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qFUqp/btrCDbYp13H/2zPT0dkkQQnAIYIvN1KkP1/img.png)
pod install์ ํ๋ ์์์ง๋ ๋ฐฉ๋ํ ์์ error xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': dlopen(/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi_c.bundle, 0x0009): tried..
๋จผ์ Optional์ ๊ธฐ๋ณธ์ ์ธ ์ ์๋ "๊ฐ์ด ์์ ์๋ ์์ ์๋ ์๋ค" ๋ผ๊ณ ๋งํด์ฃผ๋ ๊ฒ์ด๋ค Optional์ ์ฌ์ฉํจ์ผ๋ก์ nil์ด ์๋์ง ์๋์ง๋ฅผ ํ์ธํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ํ์ดํธํ๊ฒ ๊ด๋ฆฌํด ์๋ฌ๋ฅผ ์ค์ฌ์ค ์ ์๋ค ๋ฐ์ Optional์ ์ฌ์ฉํ๋ 5๊ฐ์ง ๋ฐฉ๋ฒ์ด๋ค 1. Force Unwrapping 2. Cheak for nil value 3. Optional Binding 4. Nil Coalescing Operator 5. Optional Chaining ์ 5๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ ์ต์ ๋์ ์ดํดํ๊ณ ์ฌ์ฉํด๋ณด์ ์ผ๋จ ๊ฐ๋จํ๊ฒ ์ต์ ๋์ ์ฌ์ฉํด์ ๋ณ์๋ฅผ ๋ง๋ค์ด๋ณด์ let myOptional: String? myOptional = "Muker" let text: String = myOptional // ์๋ฌ๊ฐ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dqea1c/btrBT4MHGd2/UP2njpTn62UI4BdKU1Wo1k/img.png)
ํด๋ก์ ๋ ํ๋ช ์ ํจ์๋ฅผ ์ ์ํ ๋ ์์ฒญ ์๊ฐ๋ณด๋ค ๋ง์ ์ฝ๋๋ฅผ ์ค์ฌ์ค ์ผ๋จ! ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋จํ ์ซ์ ๋๊ฐ๋ฅผ ๋ํ๋ ํจ์๋ฅผ ๋ง๋ค์ด๋ด func calculator (n1: Int, n2: Int, operation: (Int, Int) -> Int ) -> Int { return operation(n1, n2) } func add (no1: Int, no2: Int) -> Int { return no1 + no2 } calculator(n1: 3, n2: 3, operation: add) calculator ํจ์๋ฅผ ๋ง๋ค๊ณ ์ฒซ๋ฒ์งธ, ๋๋ฒ์งธ ์ธ์์ ๋์ด ๋ํ ๊ฐ์ ๋ฐ๊ณ ์ธ๋ฒ์งธ ์ธ์์ ํจ์๋ฅผ ๋ฐ์๋ฒ๋ฆผ ์ธ์์ ๋ค์ด๊ฐ ํจ์ operation์ return๊ฐ์ผ๋ก์ ๋๊ฐ์ ๊ฐ์ returnํด์ค๊ฑฐ์ ๊ทธ๋ผ add ํจ์๋ ๊ฐ๋จํ๊ฒ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b5Ecpu/btrBY2GKOfW/L8COQH6xSxQu4X7S7WLpY1/img.png)
๋ฐ์ฌ๋ฆผ(round) ์์์ ์ด 5๋ณด๋ค ํฌ๋ฉด ์ฌ๋ฆฌ๊ณ , 5๋ณด๋ค ์์ผ๋ฉด ๋ด๋ฆฝ๋๋ค. round(5.3) // 5.0 round(5.7) // 6.0 ์ฌ๋ฆผ(ceil) ์์์ ์ด 0๋ณด๋ค ํฌ๋ฉด ๋ฌด์กฐ๊ฑด ์ฌ๋ฆฝ๋๋ค. ceil(5.3) // 6.0 ceil(5.7) // 6.0 ๋ด๋ฆผ(floor) ์์์ ์ด 0๋ณด๋ค ์์ผ๋ฉด ๋ฌด์กฐ๊ฑด ๋ด๋ฆฝ๋๋ค. floor(5.123 // 5.0 floor(5.456) // 5.0 ๋ฒ๋ฆผ(trunc) ์ ์๋ฅผ ์ ์ธํ ์์์ ์ ๋ฌด์กฐ๊ฑด ๋ฒ๋ฆฝ๋๋ค. trunc(5.657) // 5.0 trunc(5.765) // 5.0 n๋ฒ์งธ ์์์ ์๋ฅด๊ธฐ ์ํ๋ ์์์ ์๋ฆฌ๋ฅผ ์ง์ ํ๊ณ , ๋๋จธ์ง ๋ถ๋ถ์ ์๋ฆ ๋๋ค. String(format: "%.3f", 5.74589345) // 5.745 String(format: "%.6f",..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0jIrP/btrnVstFLdH/Pvrkprr1W1VAnOOOYw6Pik/img.png)
์ ํํ ์ธ์ ๋ฐ๋์ง๋ ๋ชจ๋ฅด๊ฒ ๋๋ฐ ์ ์ด๋ 1๋ ์ ๊ฐ์๋ค์ ๋ณด๋ฉด ์ด๋ฐ์์ผ๋ก What.Who ๋ค์์ imageLiteral์ ์์ฑํ๋ฉด ์ ์ฐพ์์คฌ๋ค. ๊ทผ๋ฐ ์ง๊ธ์ ๋ชป ์ฐพ๋ค? Swift13์ด ์ ์ฉ๋ ํ๊ฒฝ์์ ์ฐพ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค #imageLiteral() ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ด๋ ๊ฒ ๊ธฐ์กด์ imageLiteral ํํ์ ๊ฐ๊ฒ ๋ถ๋ฌ์ฌ ์ ์๋ค.