标签归档:Swift3

Pitch Perfect

Pitch Perfect 是一款简单的 iOS应用,能够将你的声音处理成6中不同风格的文件并播放出来。共有 Fast /  Slow, High / Low Pitch, Echo / Reverb 6种。

Pitch Perfect 的诞生离不开 Swift 3.x 以及 Cocoa Touch。我的第一款 iOS App 已经编写完成,虽然这不太可能拿上 Apple Design Awards,但也总是迈出了第一步了,成为了一名小小的 iOS 开发者 :-)

IDE

Xcode 8.3.3

macOS Sierra 10.12.6

Pitch Perfect 是一个只有2个View的简单 iOS App,在 Main.storyboard 文件中,是这样 segue 链接的。

当录制完⏺️一段声音之后,App 会自动的跳转到 View 2,进一步操作,将声音转换为 6种风格并播放。Fast /  Slow, High / Low Pitch, Echo / Reverb.

运行图片:

源代码已经发布至 Github:点击跳转

继续阅读Pitch Perfect

Swift3获取系统系统间并比较

在Swift3.x 版本中一个很不错的简化,就是将获取系统时间由NSDate()修改为Date(),可千万不要认为只是改了个名称这样简单,这使得代码更加简洁。

使用Date()获取当前系统时间:

let date = Date()

分离年月日:

let calendar = Calendar.current
var year = calendar.component(.year, from: date)
var month = calendar.component(.month, from: date)
var day = calendar.component(.day, from: date)

分离后,既可以使用一般的语句进行时间的比较。

以下是判定 今天是不是我生日 的代码实例(Playground):

//: Playground - noun: a place where people can play

import UIKit
let myBirthday = (1996, 5, 3)
var birthYear = 0

let date = Date()
let calendar = Calendar.current
var year = calendar.component(.year, from: date)
var month = calendar.component(.month, from: date)
var day = calendar.component(.day, from: date)

if month == myBirthday.1 {
    if day == myBirthday.2 {
        birthYear = year - 1996
        print("It's my \(birthYear)'s birthday 👑")
    }
}

继续阅读Swift3获取系统系统间并比较

Swift3函数,排除参数为blank

Swift 的 func,在传递参数的过程,如何排除 空值 blank?这是我在 Udacity 的 Swift Problem Set 中的一道作业题目。

Swift Problem Set 中的第16道题目如下:

Exercise 16

The function ‘beginsWithVowel’ should take a single ‘String’ parameter and return a ‘Bool’ indicating whether the input string begins with a vowel. If the input string begins with a vowel return true, otherwise return false.
First, you will want to test if the input string is “”. If the input string is “”, then return false. Otherwise, you can access the first character of a ‘String’ by using ‘nameOfString.characters[nameOfString.startIndex]’.

输入一个单词,如果单词开头为元音(A, E, I, O, U),则返回 Bool类型 为 true;如果单词开头为辅音,则返回 Bool类型 为 false;如果参数为 “” 空值,返回为false。

以下是检验样例:

beginsWithVowel(letter: "Apples")         // true
beginsWithVowel(letter: "pIG")             // false
beginsWithVowel(letter: "oink")            // true
beginsWithVowel(letter: "udacity")        // true

//Test if the input string is "". If the input string is "", then return false.
beginsWithVowel(letter: "")                  // false

最先想到的就是用:

if letter == nil

但是,Xcode 编译器提示了警告,非选择性比较字符串的值为nil始终返回false。

先来试试,

if letter == “”

既然 Swift 不允许 if letter == “”,那就从反面出发:

if letter != “”

用 if-else 语句,用 else 来否定 blank:

此方法在 Udacity 上的审阅评价:

 

继续阅读Swift3函数,排除参数为blank