[도입편] Swift Realm

11714 단어 XcodeSwiftRealmiOS

입문


Android에서 Realm을 사용해 봤지만 최근 Swift로 앱을 만들고 Relam을 사용하기로 결정해서 많이 해보고 싶어요.
이번에는 Realm의 가져오기에서 간단한 데이터의 추가·업데이트로 바꾸고 싶습니다.

환경

  • XCode:7.3.1
  • iOS:9.3
  • Swift:2.2
  • Realm:1.0.1
  • 배치


    CocoaPods 설치


    CocoaPods가 설치되어 있지 않은 경우 다음을 참조하여 배포
    1.gem 설치
    sudo gem install cocoapods
    2. 터미널 재부팅 및 버전 확인
    pod --version
    1.0.1
    3.setup
    pod setup
    
    Setting up CocoaPods master repo
      $ /usr/bin/git pull --ff-only
      From https://github.com/CocoaPods/Specs
         d6fd82b..495e021  master     -> origin/master
      Updating d6fd82b..495e021
      Fast-forward
       Specs/MXTouchID/1.0.1/MXTouchID.podspec.json | 21 +++++++++++++++++++++
       1 file changed, 21 insertions(+)
       create mode 100644 Specs/MXTouchID/1.0.1/MXTouchID.podspec.json
    Setup completed
    

    CocoaPods에 Realm 설치


    1. Realm을 사용하려는 항목으로 이동
    cd <project root directory>
    ls -la
    total 0
    drwxr-xr-x   5 kazuhiro  staff  170  7  9 16:25 .
    drwxr-xr-x   6 kazuhiro  staff  204  7  9 16:25 ..
    drwxr-xr-x  12 kazuhiro  staff  408  7  9 17:15 .git
    drwxr-xr-x   7 kazuhiro  staff  238  7  9 16:25 RealmSample
    drwxr-xr-x   5 kazuhiro  staff  170  7  9 16:25 RealmSample.xcodeproj
    
    2. CocoaPods를 초기화하고 PodFile을 생성합니다.
    pod init
    
    3. Podfile 편집
    블록을 사용하면 모든 대상에 설치된pod를 전환할 수 있습니다.
    필요에 따라 기술하십시오.
    vi Profile
    
    <ブロックを利用しない場合>
    target '<Project name>'
        pod 'Realm'
    
    <ブロックを利用する場合>
    target '<Project name>', exclusive: true do
        pod 'Realm'
    end
    
    target '<TestProject name>', exclusive: true do
        pod 'Realm/Headers'
    end
    
    4. 설치
    pod install
    
    Analyzing dependencies
    Downloading dependencies
    Using Realm (1.0.1)
    Generating Pods project
    Integrating client project
    Sending stats
    Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
    
    5. 생성된 작업공간을 클릭하여 시작

    6. Linked Frameworks 및 라이브러리에 다음 라이브러리 추가
  • Realm.framework
  • RealmSwift.framework

  • 라이브러리를 선택하고dd 단추를 사용하여 추가

    Realm Xcode Prugin 도입


    Xcode 플러그인을 사용하면 Realm 모형 파일을 쉽게 만들 수 있으므로 먼저 가져옵니다.

    Alcatraz


    Alcatraz를 가져오지 않으면 를 추가합니다.
    설치 후 xCode를 다시 시작하면 윈도우>PackageManager 추가
    curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
    
    
    Xcode를 시작하고 시작할 때 Bundles 로드를 선택합니다.

    플러그인 도입


    1. window>Package Manager>Realm 입력


    ReamlBrowser


    Realm Browser는 realm 파일을 탐색하고 편집하는 데 사용되는 Mac 응용 프로그램입니다.

    RealmPlugin


    파일에서 Realm 파일을 만드는 데 사용되는 플러그인입니다.
    File>New>에서 Realm 선택

    Relam 사용


    이번에는 간단한 데이터 추가, 삭제 등을 시도하고 싶습니다.
    1. 먼저 구조를 만듭니다
    이번에 우리는 간단한 사용자 정보를 관리하는 모델을 만들 것이다.
    RealmSwift.swift
    import Foundation
    import RealmSwift
    
    class RealmUser: Object {
        dynamic var id : Int = 0;
        dynamic var nickname = "";
        dynamic var age: Int = 0;
    }
    
    
    2. 실제 데이터 추가
    ViewController.swift
    import UIKit
    import RealmSwift
    
    class ViewController: UIViewController {
    
        let realmDB = RealmUser()
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
    
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
        func realmConnect() {
            realmDB.id = 1;
            realmDB.age = 26;
            realmDB.nickname = "kazuhiro";
            self.save();
            self.find();
        }
    
        /**
        保存処理
        */
        func save() {
            do {
                let realm = try Realm()
    
                try realm.write {
                    realm.add(self.realmDB)
                }
            } catch {
    
            }
        }
    
        func find() {
            let realm = try! Realm()
            let dataContent = realm.objects(RealmUser)
            print(dataContent)
        }
    
        func dataUpdate() {
    
            do {
                let realm = try! Realm()
    
                let data = realm.objects(RealmUser).last!
                try realm.write {
                    data.nickname = "hirokazu"
                }
    
            } catch {
    
            }
        }
    
        func deleate() {
    
            do {
                let realm = try! Realm()
    
                let data = realm.objects(RealmUser).last!
    
                try realm.write {
                    realm.delete(data)
                }
    
            } catch {
    
            }
        }
    }
    
    

    참고 자료


    https://realm.io/jp/docs/swift/latest/
    http://qiita.com/See_Ku/items/6211690df3c56255fde4

    좋은 웹페이지 즐겨찾기