【第5回】Swiftアプリ開発チュートリアル -Food Tracker- のお供に(Define Your Data Model 編)

  • 4
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

AppleのSwiftアプリ開発チュートリアルを進めていて出てきた関数やクラスなどについて、調べたことを残していきます。
チュートリアルを進めながら、ざっくりとどういうものかを把握するためのお供になればと思います。

初学者のため、間違い等あればご指摘ください。 :bow:

第1回:Swiftアプリ開発チュートリアル -Food Tracker- のお供に(Build a Basic UI 編)
第2回:Swiftアプリ開発チュートリアル -Food Tracker- のお供に(Connect the UI to Code 編)
第3回:Swiftアプリ開発チュートリアル -Food Tracker- のお供に(Work with View Controllers 編)
第4回:Swiftアプリ開発チュートリアル -Food Tracker- のお供に(Implement a Custom Control 編)
第5回:Swiftアプリ開発チュートリアル -Food Tracker- のお供に(Define Your Data Model 編)←今回はここ

チュートリアルページ

https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson2.html#//apple_ref/doc/uid/TP40015214-CH5-SW1

以下のような構成でレッスンが進んでいくので、それに沿って進めていきます。

  • Building the UI
    • Build a Basic UI
    • Connect the UI to Code
    • Work with View Controllers
    • Implement a Custom Control
    • Define Your Data Model(今回はここ)
  • Working with Table Views
    • Create a Table View
    • Implement Navigation
    • Implement Edit and Delete Behavior
    • Persist Data

Define Your Data Model

今回は以下のレッスンで出てきたものについて見ていきます。

https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson6.html#//apple_ref/doc/uid/TP40015214-CH20-SW1

■ isEmpty

チュートリアルではString型のプロパティとして登場しており、文字列が空のときにtrueを返す。
同様のプロパティは辞書型や配列型でも定義されている。

チュートリアルでの使用例

Meal.swift
if name.isEmpty || rating < 0 {
    return nil
}

ドキュメント

■ XCTAssertNotNil()

Xcodeのテストフレームワーク「XCTest」にて用いる。
引数に与える値がnilでないことをテストする際の関数。

チュートリアルでの使用例

FoodTrackerSampleTests.swift
// Success case.
let potentialItem = Meal(name: "Newest meal", photo: nil, rating: 5)
XCTAssertNotNil(potentialItem)

■ XCTAssertNil()

Xcodeのテストフレームワーク「XCTest」にて用いる。
引数に与える値がnilであることをテストする際の関数。

チュートリアルでの使用例

FoodTrackerSampleTests.swift
// Failure cases.
let noName = Meal(name: "", photo: nil, rating: 0)
XCTAssertNil(noName, "Empty name is invalid")

let badRating = Meal(name: "Really bad rating", photo: nil, rating: -1)
XCTAssertNil(badRating, "Negative ratings are invalid, be positive")