<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>waffle-lee.log</title>
        <link>https://velog.io/</link>
        <description>와플좋아하고 개발공부하는 디자이너 리입니다.</description>
        <lastBuildDate>Wed, 29 Jun 2022 17:29:48 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>waffle-lee.log</title>
            <url>https://velog.velcdn.com/images/waffle-lee/profile/573ae965-4a79-4ad4-8cc0-95404e655c96/social_profile.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. waffle-lee.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/waffle-lee" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[클로저]]></title>
            <link>https://velog.io/@waffle-lee/%ED%81%B4%EB%A1%9C%EC%A0%80</link>
            <guid>https://velog.io/@waffle-lee/%ED%81%B4%EB%A1%9C%EC%A0%80</guid>
            <pubDate>Wed, 29 Jun 2022 17:29:48 GMT</pubDate>
            <description><![CDATA[<p>클로저 -&gt; 매소드를 반환한다.
만약 반환할 것이 없다면 Void 해준다.</p>
<p>정대리님 예시 적어보기~~
새벽2시반이라 피곤함 ㅜㅠ...</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[헷갈리는 비교 연산자]]></title>
            <link>https://velog.io/@waffle-lee/%ED%97%B7%EA%B0%88%EB%A6%AC%EB%8A%94-%EB%B9%84%EA%B5%90-%EC%97%B0%EC%82%B0%EC%9E%90</link>
            <guid>https://velog.io/@waffle-lee/%ED%97%B7%EA%B0%88%EB%A6%AC%EB%8A%94-%EB%B9%84%EA%B5%90-%EC%97%B0%EC%82%B0%EC%9E%90</guid>
            <pubDate>Wed, 29 Jun 2022 17:21:51 GMT</pubDate>
            <description><![CDATA[<p>A == B 값이 같다.
A &gt;= B 값이 크거나 같다.
A &lt;= B 값이 작거나 같다.
A &gt; B 값이 크다.
A &lt; B 값이 작다.
A != B 값이 같지 않다.
A === B 참조가 같다. (무슨말이지?)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[제너릭(오류남)]]></title>
            <link>https://velog.io/@waffle-lee/%EC%A0%9C%EB%84%88%EB%A6%AD</link>
            <guid>https://velog.io/@waffle-lee/%EC%A0%9C%EB%84%88%EB%A6%AD</guid>
            <pubDate>Wed, 29 Jun 2022 03:17:54 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-swift">import UIKit

//제네릭
struct MyArray&lt;SomeElement&gt;{

    //제네릭을 담은 빈 배열
    var elements : [SomeElement] = [SomeElement]()

    //생성자
    init(_elements: [SomeElement]){
        self.elements = elements
    }
}

struct Friend{
    var name: String
}

struct PpakCoder {
    var name : String
}</code></pre>
<p>오류남</p>
<pre><code class="language-swift">import UIKit


//
//struct State&lt;DATA_TYPE, T, U&gt; {
//    var element : DATA_TYPE
//    var otherElement : T
//    var thirdElement : U
//}
//
//let object = State(element: &quot;gkgk&quot;, otherElement: 123, thirdElement: false)
//
//ob
//
//let object = State(element: &quot;dddkdk&quot;)
//obj
struct MyArray&lt;T&gt;{

    // 제네릭을 담은 빈 배열
    var elements : [T] = [T]()

    // 생성자
    init(_ elements: [T]){
        self.elements = elements
    }

}

struct Friend {
    var name: String
}

struct PpakCoder {
    var name: String
}

var mySomeArray = MyArray([1,2,3])
print(&quot;mySomeArray : \(mySomeArray)&quot;)

var myStringArray = MyArray([&quot;가&quot;,&quot;나&quot;,&quot;다&quot;])
print(&quot;myStringArray : \(myStringArray)&quot;)

let friend_01 = Friend(name: &quot;철수&quot;)
let friend_02 = Friend(name: &quot;영희&quot;)
let friend_03 = Friend(name: &quot;수잔&quot;)

var myFriendsArray = MyArray([friend_01,friend_02,friend_03])
print(&quot;myFriendsArray : \(myFriendsArray)&quot;)</code></pre>
<p><img src="https://velog.velcdn.com/images/waffle-lee/post/24fb044a-d042-41eb-bc96-eb5107c9e1a4/image.png" alt=""></p>
<p>정대리님이 짠 코드 좀따 다시보기</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[함수, 매개변수]]></title>
            <link>https://velog.io/@waffle-lee/%ED%95%A8%EC%88%98-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98</link>
            <guid>https://velog.io/@waffle-lee/%ED%95%A8%EC%88%98-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98</guid>
            <pubDate>Wed, 29 Jun 2022 03:06:54 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-swift">import UIKit

//함수, 메소드 정의
func myFunction(name: String) -&gt; String{
    return &quot;안녕하세요?! \(name) 입니다!&quot;
}

//함수, 메소드 호출
myFunction(name: &quot;쩡대리&quot;)

//함수, 메소드 정의
func myFunctionSecond(with name: String) -&gt; String{
    return &quot;안녕하세요?! \(name) 입니다!&quot;
}
myFunctionSecond(with: &quot;와프리&quot;)

//함수, 메소드 정의 _는 호출 이름을 생략하고 싶을때 쓴다... 이해는 안되지만 아... 그렇구나...
func myFunctionThird(_ name: String) -&gt; String{
    return &quot;안녕하세요?! \(name) 입니다!&quot;
}

myFunctionThird(&quot;GG&quot;)</code></pre>
<p>뭐...!! 아는 내용!!!
Func는 메소드나 계산 식을 정의하고 반환값을 정의하는 묶음이라고 이해를 했다.</p>
<p>매소드는 영어에서 동사같은 느낌인데, 실행하는 함수라고 생각한다.</p>
<p>그리고 name은 매개 변수인데, 매개변수를 지정 할 수도 있고 안할 수도 있다.
매개변수를 지정하고 기본값(와프리)을 세팅하지 않았을때 반드시 기본값의 성질 String, Int, Float 등을 설명해줘야 컴퓨터와 원만한 소통이 가능하다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[프로퍼티 옵저버]]></title>
            <link>https://velog.io/@waffle-lee/%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EC%98%B5%EC%A0%80%EB%B2%84</link>
            <guid>https://velog.io/@waffle-lee/%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%EC%98%B5%EC%A0%80%EB%B2%84</guid>
            <pubDate>Wed, 29 Jun 2022 02:54:57 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-swift">import UIKit

var myAge = 0 {
    willSet{
        print(&quot;값이 설정될 예정이다. myAge: \(myAge)&quot;)
    }
    didSet{
        print(&quot;값이 설정되었다. myAge: \(myAge)&quot;)
    }
}

myAge = 10
myAge = 20</code></pre>
<p><img src="https://velog.velcdn.com/images/waffle-lee/post/1b4fc3b1-fd36-4f55-96c0-47c1a27e285c/image.png" alt=""></p>
<p>자세하게 알게 되면 포스팅을 수정하겠다.</p>
<p>오류가 났지만 빠르게 잡았다.
어디에 쓰이는지 모르겠다 22...
어떻게 작동되는 지도 모르겠다 22...</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[구조체_Struct, Class]]></title>
            <link>https://velog.io/@waffle-lee/%EA%B5%AC%EC%A1%B0%EC%B2%B4Struct-Class</link>
            <guid>https://velog.io/@waffle-lee/%EA%B5%AC%EC%A1%B0%EC%B2%B4Struct-Class</guid>
            <pubDate>Tue, 28 Jun 2022 17:27:12 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/waffle-lee/post/627fce98-ab51-4f45-97c6-080dc1621c63/image.png" alt="">
정대리쌤이 이걸 공부하랬당...</p>
<p>#잡담</p>
<h1 id="☂">☂</h1>
<h2 id="비가-많이-온다">비가 많이 온다.</h2>
<p>램 설명을 보이시다...
공부할것이 많구만</p>
<p><img src="https://velog.velcdn.com/images/waffle-lee/post/abc83f54-ffa3-4b80-8253-c61173f1ae80/image.png" alt=""></p>
<pre><code>구조체 는 정보를 한 곳에 모은 집합모델이라고 생각하면 될 것 같다.
종류는 클래스와 스트럭트가 있다.

정대리님이 유튜버 구독자 어쩌고 하는데
잘 모르겠다.

그냥 내 방식으로 이해하자면
전화번호부의 이름과 번호 소속 메모 주소 등이 구조체에 들어있지 않나 생각이 든다.

한가지 드는 의문점은 func랑 어떤 것이 다른가인데
내 생각에는 func는 함수를 정의하는 것이고
정보를 묶는 것이랑은 또 다르다고 생각이 든다...
정보는 또 [배열]이 들어가는데, 이것 또한 어떤 관계가 되는지 궁금하다.</code></pre><h1 id="구조체-본론">구조체 본론</h1>
<pre><code class="language-swift">import UIKit

// 변수- 수가 변함
// 모델 이름, 영상, URL, 조회수 등을 덩어리로 모아둔다. -&gt; 방식이 두가지 클래스와 스트럭트입니다.

// struct : 복사해서 사용하는 개념. 참조하는 값이 바뀌어도 기존 값에는 영향이 없음!
// class : 공유해서 사용하는 개념. 참조하는 값이 바뀌면 기존 값도 바뀜!

// 유튜버 구독자 (데이터) 모델 - struct / 구조체
struct YoutubeStruct {
    var name : String
    var subscriberCount : Int
}

var devJueong = YoutubeStruct(name: &quot;정대리&quot;, subscriberCount: 99999)

var devJueongClone = devJueong
//아마 초기화 하는 듯

print(&quot;======struct=======&quot;)

print (&quot;값 넣기 전 devJeongClone.name : \(devJueongClone.name)&quot;)

devJueongClone.name = &quot;호롤롤로&quot;

// 값 복사이기 때문에 둘의 값이 다르다.
print(&quot;값 넣기 후 devJeongClone.name : \(devJueongClone.name)&quot;)
print(&quot;값 넣기 후 devJeongClone.name : \(devJueong.name)&quot;)

print(&quot;======class=======&quot;)

//클래스

class YoutuberClass {
    var name : String
    var subscribersCount : Int
    init (name: String, subscribersCount: Int){
        self.name = name
        self.subscribersCount = subscribersCount
    }
}

var jeongDaeRi = YoutuberClass(name: &quot;정대리&quot;, subscribersCount: 99999)

var jeongDaeRiClone = jeongDaeRi

print(&quot;값 넣기 전 jeongDaeRiClone.name : \(jeongDaeRiClone.name)&quot;)

jeongDaeRiClone.name = &quot;와프리&quot;

print(&quot;값 넣기 후 jeongDaeRiClone.name : \(jeongDaeRiClone.name)&quot;)

print(&quot;값 넣은 후 jeongDaeRi.name : \(jeongDaeRi.name)&quot;)</code></pre>
<h4 id="결론">결론</h4>
<p><img src="https://velog.velcdn.com/images/waffle-lee/post/01508fe4-c72d-4626-b59f-f70f5050a66d/image.png" alt=""></p>
<p><del>또 오류다. 놀랍지도 않다.
잠이 오니깐 자겠다 ㅠㅠ</del> 해결</p>
<p>하루지나니깐 struct와 class의 정의를 알 수 있게 되었다.
그런데, 저 기능들은 어디에 쓰이는 걸까...?</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[swift unwrap + 옵셔널 변수, ??]]></title>
            <link>https://velog.io/@waffle-lee/swift-unwrap-%EC%98%B5%EC%85%94%EB%84%90-%EB%B3%80%EC%88%98</link>
            <guid>https://velog.io/@waffle-lee/swift-unwrap-%EC%98%B5%EC%85%94%EB%84%90-%EB%B3%80%EC%88%98</guid>
            <pubDate>Tue, 28 Jun 2022 14:05:49 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/waffle-lee/post/06c5531f-ae0f-48de-840f-431265b1df8a/image.jpeg" alt="">
<span style="color:rgb(255, 178, 217)">으릅당...</span></p>
<h2 id="unwrap-이해하기">unwrap 이해하기</h2>
<pre><code class="language-swift">import UIKit

//옵셔널이란?
//값이 있을 수도 있고, 없을 수도 있다.

var someVariable : Int? = nil

if someVariable == nil {
    someVariable = 90
}

print(&quot;someVariable &quot;, someVariable)

//언래핑이란? 랩 즉 감싸져 있는 것을 벗기는 것 someVariable 의 변수를 otherVariable의 이름으로 넣어서 옵셔널을 () 벗긴다.

if let otherVariable = someVariable {
    print(&quot;언래핑 되었다. 즉 값이 있다. otherVariable : \(otherVariable)&quot;)
} else {
    print(&quot;값이 없다.&quot;)
}

var firstValue : Int? = 30
var secondValue : Int? = 50

print(&quot;firstValue: \(firstValue)&quot;)
print(&quot;secondValue: \(secondValue)&quot;)

unwrap(parameter: firstValue)
unwrap(parameter: secondValue)

someVariable = nil

// let myValue = someVariable ?? 10 : ?? : someVariable 이 비어있으면 즉 값이 없으면 기본값으로 요놈을 넣겠다.

let myValue = someVariable ?? 10
print(&quot;myValue: \(myValue)&quot;)

func unwrap(parameter: Int?) {
    print(&quot;unwrap() called&quot;)
    //값이 없으면 리턴 해버린다.
    //파라메터 : 메소드안에 넣는 재료
    guard let unWrappedParam = parameter else {
        return
    }
    print(&quot;unWrappednParam: \(unWrappedParam)&quot;)
}

// 옵셔널 벗기기 : 언래핑
// 언래핑 하는 법 : if let 으로 벗기거나,
// guard let으로 벗긴다.</code></pre>
<hr>
<h2 id="결과값">결과값</h2>
<blockquote>
<p>someVariable  Optional(90)
언래핑 되었다. 즉 값이 있다. otherVariable : 90
firstValue: Optional(30)
secondValue: Optional(50)
unwrap() called
unWrappednParam: 30
unwrap() called
unWrappednParam: 50
myValue: 10</p>
</blockquote>
<hr>
<h2 id="">??</h2>
<blockquote>
<p>A ?? B
A가 null 일때, B로
<a href="https://supercoding.tistory.com/12">https://supercoding.tistory.com/12</a></p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/waffle-lee/post/06c5531f-ae0f-48de-840f-431265b1df8a/image.jpeg" alt="">
<span style="color:rgb(255, 178, 217)">사실, 옵셔널? 쓰라고 해서 쓰고,
언래핑하래서 했다.</span></p>
<p>아직 사용해보지 않아서 왜 쓰는지 모르겠다.
좀 더 고민해봐야겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[swift for in 구문 + append]]></title>
            <link>https://velog.io/@waffle-lee/swift-for-in-%EA%B5%AC%EB%AC%B8-append</link>
            <guid>https://velog.io/@waffle-lee/swift-for-in-%EA%B5%AC%EB%AC%B8-append</guid>
            <pubDate>Tue, 28 Jun 2022 13:24:32 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/waffle-lee/post/75a1d5e3-6509-4813-9b48-c53eccb52139/image.jpeg" alt=""></p>
<p><span style="color:rgb(255, 178, 217)">내가 좋아하는 아이유 사진으로 힐링하기</span> </p>
<p>역시 듀얼모니터가 짱이야.
한 번에 따라함</p>
<p>정대리님의 유튜브 보고 따라했습니다.</p>
<h2 id="swift-for-in-구문--append">swift for in 구문 + append</h2>
<pre><code class="language-swift">import UIKit

//레인지
//0...5
//0,1,2,3,4,5

//0..&lt;5
//0, 1, 2, 3, 4


for index in 0...5 {
    print(&quot;호호 i: \(index)&quot;)
}


for index in 0..&lt;5 {
    print(&quot;호호2 i: \(index)&quot;)
}

for index in 0..&lt;5 where index % 2 == 0 {
    print(&quot;호호 짝수 index: \(index)&quot;)
}

//var randomInts: [Int] = []
var randomInts: [Int] = [Int]()

for _ in 0..&lt;25 {
    let randomNumber = Int.random(in: 0...100)
    randomInts.append(randomNumber)
}

print(&quot;randomInts: \(randomInts)&quot;)</code></pre>
<hr>
<h2 id="result">result</h2>
<blockquote>
</blockquote>
<p>호호 i: 0
호호 i: 1
호호 i: 2
호호 i: 3
호호 i: 4
호호 i: 5
호호2 i: 0
호호2 i: 1
호호2 i: 2
호호2 i: 3
호호2 i: 4
호호 짝수 index: 0
호호 짝수 index: 2
호호 짝수 index: 4
randomInts: [92, 76, 54, 60, 10, 99, 20, 49, 83, 4, 38, 76, 34, 30, 60, 15, 78, 93, 77, 15, 29, 47, 73, 70, 25]</p>
<hr>
<h2 id="새로-알게-된-내용">새로 알게 된 내용</h2>
<blockquote>
<p>append(_:) : 1개의 값을 추가한다.</p>
</blockquote>
<p>append(contentsOf:) : 다른 Sequence(표준 배열이 아님 ex: ArraySlice, StringSequence, Set 등) 또는 Collection의 값을 추가한다.</p>
<blockquote>
</blockquote>
<p>즉 ContentsOf는 표준 타입(Int, Int64, String, Character, Double 등)을 추가하는 것 외의 것들을 추가할 때 주로 사용한다.</p>
<blockquote>
</blockquote>
<p>-&gt; 배열값을 정렬할 때 쓰는듯...?
자세히 알게 되면 한 번 더 포스팅 하겠음</p>
<blockquote>
</blockquote>
<p>[출처] Swift append(_:) vs append(contentsOf:)|작성자 PJH
<a href="https://blog.naver.com/exoci/222509237352">https://blog.naver.com/exoci/222509237352</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[swift / enum case 나누기 (오류종류)]]></title>
            <link>https://velog.io/@waffle-lee/swift-enum-case-%EB%82%98%EB%88%84%EA%B8%B0-%EC%98%A4%EB%A5%98%EB%82%A8</link>
            <guid>https://velog.io/@waffle-lee/swift-enum-case-%EB%82%98%EB%88%84%EA%B8%B0-%EC%98%A4%EB%A5%98%EB%82%A8</guid>
            <pubDate>Tue, 28 Jun 2022 13:02:19 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/waffle-lee/post/9eb2ca88-e03a-4979-8966-1a4cf43562ed/image.jpg" alt=""></p>
<p><span style="color:rgb(255, 178, 217)">별나라 요저엉 코미님 저에게 힘을 주세요...</span></p>
<p>*이 시리즈는 정대리님의 유튜브를 실습한 것을 정리한 내용입니다.
혹시 다른 글에서도 표시가 안되어있어도, 항상 정대리님께 감사하는 마음을 담아 공부하겠습니다.</p>
<h3 id="swift">swift</h3>
<h3 id="enum-case-나누기-원시값-rawvalue">enum case 나누기, 원시값 (rawValue)</h3>
<p>(스위프트 프로그래밍 104페이지)</p>
<hr>
<pre><code class="language-swift">import UIKit

//학교 - 초, 중, 고
enum School {
//case elementray
//case middle
//case high
    case elementary, middle, high
}

let yourSchool = School.high
//print(&quot;yourSchool: \(yourSchool)&quot;)
print(&quot;yourSchool: &quot;, yourSchool)

enum Grade : Int {
    case first = 1
    case second = 2
}

let yourGrade = Grade.second.rawValue
print(&quot;yourGrade : \(yourGrade)&quot;)

enum SchoolDetail {
    case elementary(name: String)
    case middle(name: String)
    case high(name: String)


    func getName() -&gt; String {
        switch self {
        case .elementary(let name):
            return name
        case let .middle(name):
            return name
        case .high(let name):
            return name
        }
    }
}



//let yourGrade = Grade.second.rawValue
//print(&quot;yoourGrade: \(yourGrade)&quot;)

let yourMiddleSchoolName = SchoolDetail.middle(name: &quot;와프리중학교&quot;)

print(&quot;yourMiddleSchoolName: \(yourMiddleSchoolName.getName())&quot;)</code></pre>
<hr>
<p><img src="https://velog.velcdn.com/images/waffle-lee/post/9eb2ca88-e03a-4979-8966-1a4cf43562ed/image.jpg" alt=""></p>
<p>오류 내용
<span style="color:rgb(255, 178, 217)">enum School</span></p>
<p>대문자, 소문자는 32만큼 차이가 난다...
3일동안 오류를 찾았다.
결국 다른사람이 찾아줬다.</p>
<blockquote>
<p>오류 3대장 </p>
<ol>
<li>스페이스</li>
<li>{} 짝 맞추기</li>
<li>오타</li>
<li>대소문자</li>
</ol>
</blockquote>
<p><img src="https://velog.velcdn.com/images/waffle-lee/post/7bd0e794-6374-4e1b-b420-6264214e1cbb/image.png" alt=""></p>
<p>enum은 switch와 뭐가 다른지 아직 알진 못했다.
하지만, 조건문과 다른 열거값인 것 같당...</p>
<p>서강대학교 대학원 아트앤테크니컬 수료중인 오빠가 스토리게임을
switch의 case로 해결한다고 한다.
개발을 공부한지 2주차... 첨엔 너무 재밌었지만,
대답하지 않는 코드들을 보면 가끔 현타가 오는데,
저런 코드로 활용해서 뭔가 만드는 사람들을 보면서 힘을 얻는다.</p>
<blockquote>
<p>값
오류가 해결되면 쓰겠다.</p>
</blockquote>
<blockquote>
<p>*rawValue를 책에서 봤는데,
원시값이라고 기본값에 준하는 개념같다.
<img src="https://velog.velcdn.com/images/waffle-lee/post/94258d2d-e017-4616-bebc-a570a8a9ea09/image.png" alt=""></p>
</blockquote>
<p>여기에서 1, 2를 원시값이라고 한다.</p>
<blockquote>
</blockquote>
<p>책에서 갸웃하던 내용을 실제 코드로 보게 되어서 기쁘다!
빨리 오류를 해결 할 수 있었으면 좋겠다.</p>
<blockquote>
</blockquote>
<p><img src="https://velog.velcdn.com/images/waffle-lee/post/cb017948-4ce5-4ca5-ba07-8359380dfa54/image.png" alt=""></p>
<blockquote>
</blockquote>
<p>*코드 설명
//정석적 표현
축약 or 이렇게도 쓸 수 있다.</p>
<p><del>어째서 
Cannot find &#39;School&#39; in scope 이 
let yourSchool = School.high</del></p>
<p><del>이 부문에서 나올까...
ㅠㅠ... 하루종일 오류를 찾을 시간은 없으니 일단 저장했다가 
내일 찾아봐야겠다...</del></p>
<p><del>그리고 이 사이트 고수들은 이것도 하고 저것도 하고 예쁘게 꾸미던데,
나는 여기 레이아웃에 익숙해지지 않았다... 나도 이것저것 이쁘게 꾸미고 싶드아...
(설마 명령값으로 꾸미는거...?)</del> 찾았다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[swift  배열 반복문 + where]]></title>
            <link>https://velog.io/@waffle-lee/swift-%EB%B0%B0%EC%97%B4</link>
            <guid>https://velog.io/@waffle-lee/swift-%EB%B0%B0%EC%97%B4</guid>
            <pubDate>Tue, 28 Jun 2022 07:59:50 GMT</pubDate>
            <description><![CDATA[<h1 id="swift-배열-예제-a-1">swift 배열 예제 a-1</h1>
<hr>
<pre><code class="language-swift">import UIKit


//콜렉션 : 데이터를 모아둔 것
//배열, 셋, 딕셔너리-&gt;[] 튜플-&gt;()
//배열

var myArray : [Int] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for item in myArray {
    print(&quot;item: \(item)&quot;)
}

//myArray가 item 에 담긴다.
//여기에서 반환값 -&gt; 이 표시가 생략된 듯 하다.
//복잡하게 생각 할 것 없이 &quot;item: \(item)&quot; 이 배열의 \(item) 이부분
//에 [Int] 가 하나씩 들어가서 표시가 된다.
//Swift는 자동\n이 된다. 만약 엔터가 싫다면
//terminator를 쓰장!!! (담에 다루겠다)</code></pre>
<hr>
<blockquote>
<p>/* result
item: 0
item: 1
item: 2
item: 3
item: 4
item: 5
item: 6
item: 7
item: 8
item: 9
item: 10
*/</p>
</blockquote>
<h1 id="swift-배열-예제-a-2">swift 배열 예제 a-2</h1>
<hr>
<pre><code class="language-swift">import UIKit


//콜렉션 : 데이터를 모아둔 것
//배열, 셋, 딕셔너리, 튜플
//배열

var myArray : [Int] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for item in myArray where item &gt; 5 {
    print(&quot;5보다 큰 수: \(item)&quot;)
}

for item in myArray where item % 2 == 0 {
    print(&quot;짝수: \(item)&quot;)
}

//where은 조건문과 같다. 뒤에 있는 계산에 true인 값만 오는 듯하다.
//어째선지 홀수값은 실패했다 ㅂㄷㅂㄷ</code></pre>
<hr>
<blockquote>
<p>/result
5보다 큰 수: 6
5보다 큰 수: 7
5보다 큰 수: 8
5보다 큰 수: 9
5보다 큰 수: 10
짝수: 0
짝수: 2
짝수: 4
짝수: 6
짝수: 8
짝수: 10
홀수: 1
홀수: 3
홀수: 5
홀수: 7
홀수: 9
/</p>
</blockquote>
<h4 id="where--조건문이다">where : 조건문이다.</h4>
<p>뒤에 조건을 달면 그 값에 해당하는 수만 배열에서 튀어나온다.</p>
<p><del>*의문점</del></p>
<pre><code class="language-swift">for item in myArray where item % 2 != 0 {
print(&quot;홀수: \(item)&quot;)
}</code></pre>
<p>-&gt; 실행 안되는 이유 : == 랑 != 랑 = 연산자 차이점 알기.
 슬래시() 에서 슬래시 빼지 않기 </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Swift 조건문 + 삼항연산자]]></title>
            <link>https://velog.io/@waffle-lee/Swift-%EC%A1%B0%EA%B1%B4%EB%AC%B8</link>
            <guid>https://velog.io/@waffle-lee/Swift-%EC%A1%B0%EA%B1%B4%EB%AC%B8</guid>
            <pubDate>Tue, 28 Jun 2022 06:50:32 GMT</pubDate>
            <description><![CDATA[<h1 id="uiux-디자이너--컴공-비전공자의-개발일지-첫번째">UI/UX 디자이너 / 컴공 비전공자의 개발일지 첫번째.</h1>
<blockquote>
<p>목적 : 내가 디자인한 UI/UX를 구현해보고싶어!!!</p>
<ol>
<li><p>Swift playground 1,2 편으로 스위프트랑 친해진다.</p>
</li>
<li><p>겂없이 부스트캠프 IOS 모바일 개발자에 도전하다. (어제 시험침)</p>
</li>
<li><p>Swift 야곰 저자 _ 스위프트 프로그래밍 책의 도움을 받아 프로그래밍 언어에 익숙해진다. -&gt; 주석을 이용해서 모르는 것을 쏙쏙 찾아볼 수 있으니 초보자에겐 이보다 간편한 과외선생님이 있을까?</p>
</li>
<li><p>Swift 정대리님의 유튜브를 듣는다.
<a href="https://www.youtube.com/watch?v=EXtpt5Skzck&amp;t=185s">https://www.youtube.com/watch?v=EXtpt5Skzck&amp;t=185s</a></p>
</li>
</ol>
</blockquote>
<h1 id="조건문">조건문</h1>
<h2 id="if-조건문-a-1-예제">If 조건문 a-1 예제</h2>
<hr>
<pre><code class="language-swift">import UIKit

// 다크모드 여부
var isDarkMode : Bool = false

var title : String = isDarkMode == true **?** &quot;다크모드 입니다&quot; : &quot;다크모드가 아닙니다&quot;
print(&quot;title: \(title)&quot;)</code></pre>
<hr>
<h2 id="if-조건문-a-2-예제">If 조건문 a-2 예제</h2>
<hr>
<pre><code class="language-swift">import UIKit

// 다크모드 여부
var isDarkMode : Bool = false

var title : String = isDarkMode **?** &quot;다크모드 입니다&quot; : &quot;다크모드가 아닙니다&quot;
print(&quot;title: \(title)&quot;)</code></pre>
<hr>
<p>이렇게 축약도 가능하단다.</p>
<p>만약 한단계 더 true를 다크모드가 아닙니다로 하고 싶다면,</p>
<h2 id="if-조건문-a-3-예제">If 조건문 a-3 예제</h2>
<hr>
<pre><code class="language-swift">import UIKit

// 다크모드 여부
var isDarkMode : Bool = false

var title : String = **!**isDarkMode **?** &quot;다크모드가 아닙니다&quot; : &quot;다크모드 입니다&quot;
print(&quot;title: \(title)&quot;)</code></pre>
<hr>
<h4 id="--배운것--삼항-연산자를-배웠다">-&gt; 배운것 ? 삼항 연산자를 배웠다.</h4>
<h4 id="-삼항-연산자란"><strong>-삼항 연산자란?</strong></h4>
<p>피 연산자가 3개인 연산자입니다.
A ? B : C</p>
<p>예제 a-1 참고
여기에서 true(A) ? &quot;다크모드 입니다&quot;(B) : &quot;다크모드가 아닙니다&quot;(C) </p>
<p><img src="https://velog.velcdn.com/images/waffle-lee/post/b2c2b340-9604-4d6f-8801-426d0555bb35/image.png" alt=""></p>
<p><em>_사진 출처 : 티스토리 좋은개발자가 되자 님
(티스토리 계정이 없어서 댓글을 못달았어요... 문제시 삭제)</em>
<a href="https://greendreamtrre.tistory.com/405">https://greendreamtrre.tistory.com/405</a></p>
<p>재밌당... 원래 저걸 풀어 쓰자면_</p>
<h2 id="if-조건문-b-1-예제">If 조건문 b-1 예제</h2>
<hr>
<pre><code class="language-swift">import UIKit

// 다크모드 여부
var isDarkMode : Bool = false

if isDarkMode {
    print(&quot;다크모드 입니다&quot;)
} else {
    print(&quot;다크모드가 아닙니다&quot;)</code></pre>
<hr>
<p>   이렇게 표현이 되는데, 위에 예시는 축약형인가 보다.
   디자인도, 처음에야 일러로 표현하자면 아이콘 UI로 익숙해지지만,
   나중엔 단축키를 쓴다. 그래야 손이 빨라지거든요...
   3D 프로그램도 다 단축어를 치고 머릿속에서 구동결과를 여러번 돌려보고
   완성해야 좋은 결과물이 나올까 말까한다.</p>
<p>   일하는것은 다 똑같은 것 같다.</p>
]]></description>
        </item>
    </channel>
</rss>