본문 바로가기
iOS

[Swift] 스위프트 실전 프로젝트 1. 도서 관리 프로그램 만들기(2)

by 꿈나무 김땡땡 2020. 7. 3.

1편 : https://ddaengddaeng.tistory.com/80

 

[Swift] 스위프트 실전 프로젝트 1. 도서 관리 프로그램 만들기(1)

출처 앱 12개를 만들며 배우는 Swift4 & iOS11 아이폰 iOS 개발 강좌 https://www.inflearn.com/course/swift4-%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8-ios-%EA%B0%9C%EB%B0%9C/dashboard 앱 12개를 만들며 배우는..

ddaengddaeng.tistory.com

 

출처

앱 12개를 만들며 배우는 Swift4 & iOS11 아이폰 iOS 개발 강좌

https://www.inflearn.com/course/swift4-%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8-ios-%EA%B0%9C%EB%B0%9C/dashboard

 

앱 12개를 만들며 배우는 Swift4 & iOS11 아이폰 iOS 개발 강좌 - 인프런

Swift4 를 이용해 여러개의 앱을 만들어 보는 iOS 개발강좌 입니다. 기본적인 내용을 빠르게 학습하고, 여러 실용적인 예제들로 지식을 자신을 것으로 만들 수 있는 강좌 입니다. 최대한 빠르고, 효

www.inflearn.com

 

주요 내용

  • Command + / : 연속으로 주석처리
  • Command + R : 실행

 

코드

1) BookManager.swift (새로운 swift 파일 생성)

import Foundation

class BookManager{
    // 변수
    var bookList = [Book]() // Book 이라는 데이터 타입이 들어가는 비어있는 배열
    
    // 함수1
    func registerBook(bookObject:Book) {
        bookList += [bookObject]
    }
    // 함수2
    func showAllBooks() -> String {
        var strTemp = ""
        for bookTemp in bookList {
            strTemp += "Name: \(bookTemp.name)\n"
            strTemp += "Genre: \(bookTemp.genre)\n"
            strTemp += "Author: \(bookTemp.author)\n"
            strTemp += "-------------------\n"
        }
        
        return strTemp
    }
    // 함수3
    func countBooks() -> Int {
        return bookList.count
    }
    // 함수4
    func searchBook(name: String) -> String? {
        var strTemp = ""
        for bookTemp in bookList {
            if bookTemp.name == name {
                strTemp += "Name: \(bookTemp.name)\n"
                strTemp += "Genre: \(bookTemp.genre)\n"
                strTemp += "Author: \(bookTemp.author)\n"
                strTemp += "-------------------\n"
                
                return strTemp
            }
        }
        return nil
    }

    func removeBook(name: String) {
        for (index, value) in bookList.enumerated() {
            if value.name == name {
                bookList.remove(at: index)
            }
        }
    }
    
}

 

2) main.swift

import Foundation

var book1 = Book(name: "햄릿", genre: "비극", author: "셰익스피어")
// book1.bookPrint()
var book2 = Book(name: "누구를 위하여 종을 울리나", genre: "소설", author: "헤밍웨이")
// book2.bookPrint()
var book3 = Book(name: "죄와벌", genre: "사실주의", author: "톨스토이")
// book3.bookPrint()

var myBookManager = BookManager()
myBookManager.registerBook(bookObject: book1)
myBookManager.registerBook(bookObject: book2)
myBookManager.registerBook(bookObject: book3)

print(myBookManager.showAllBooks())
print("number of books : \(myBookManager.countBooks())")

// forced unwrapping
var searchResult = myBookManager.searchBook(name: "햄릿")
if searchResult != nil {
    print("\(searchResult!)를 찾았습니다")
    } else {
    print("찾는 책이 없어요.")
}
// option binding
if let searchResult = myBookManager.searchBook(name: "햄릿") {
    print("\(searchResult)를 찾았습니다.")
} else {
    print("찾는 책이 없어요.")
}


myBookManager.removeBook(name: "죄와벌")
print(myBookManager.showAllBooks())

 

3) Book.swift

struct Book {
    var name: String
    var genre: String
    var author: String
    
    func bookPrint() {
        print("Name: \(name)")
        print("Genre: \(genre)")
        print("Author: \(author)")
        print("--------------")
    }
}

댓글