總網頁瀏覽量

2018年1月31日 星期三

AudioKit install by using pod

Audiokit

open terminal

cd "Project Folder"

pod init

open -a Xcode Podfile


in Podfile add the following line and save the file, and quit.

pod 'AudioKit', '~> 4.0'


in terminal:

pod install


wait it complete

open Project.xcworkspace

in viewController.swift

import AudioKit

and built

then the error will disappear

2018年1月26日 星期五

Fisher–Yates shuffle 與acr4andom_uniform() in swift 4

Fisher- Yates shuffle在運算隨機排列的通用algorithm 。

-- To shuffle an array a of n elements (indices 0..n-1):
for i from n−1 downto 1 do
     j ← random integer such that 0 ≤ ji
     exchange a[j] and a[i]
An equivalent version which shuffles the array in the opposite direction (from lowest index to highest) is:
-- To shuffle an array a of n elements (indices 0..n-1):
for i from 0 to n−2 do
     j ← random integer such that i ≤ j < n
     exchange a[i] and a[j]

運用extension 的方式 加入func shuffle()(注意:前方必須加mutating)
swift 4 程式碼:
 extension Array {
    /// shuffles contents of array
    mutating func shuffle(){
        guard count > 1 else {return}
        
        for i in indices.dropLast(){
            let diff = distance(from: i, to: endIndex)
            let j = index(i, offsetBy: diff.arc4random)
            swapAt(i,j)
        }
    }
}

    extension Int {
        var arc4random : Int {
            if self > 0 {
                return Int(arc4random_uniform(UInt32(self)))
            }else if self < 0 {
                return -Int(arc4random_uniform(UInt32(abs(self))))
            }else {
                return 0
            }
        }
    }

acr4random_uniform(max)
max需為UInt32,生成隨機數範圍 0..


加入extension後使用起來很簡單
shuffle 範例:
              var x = [1,2,3,4,5,6,7]
              x.shuffle()
acr4random 範例:
            let y = 30
                 y.arc4random

2017年12月29日 星期五

Swift 4 的學習筆記 1 : 使用let 和 var 宣告一個值

常數與變數

在swift 裏,常數和變數的宣告方式不同,用 let 宣告 常數,用 var 宣告 變數,而且大小寫有區別,即 mybook 和 myBook 二者是不同的,而且宣告之初就必須指定其值。常數和變數其名稱通常首字母用小寫,並且要讓人很容易了解它的意義,使得旁人讀程式像是在讀文章一樣容易明瞭為上。

範例:

1. var myVariable = 20
2. myVariable = 18
3. var nameStringVariable = "Aqua"
4. let myConstant = 50
5. let myStringConstant = "Hello, World"

範例中的myVariable為變數,初始值為20,而後被變更為18。 nameStringVariable為變數,初始值為雙引號(“ ”)內的字串Aqua,而 myConstant 為常數,初始值為50,myStringConstant為常數,初始值為字串Hello, World。

常數和變數在宣告之依據初始值可以隱含其資料型態如 Int, Double, Float, String等(注意:資料型態首字母皆為大寫),宣告之後不得變更成為其他資料型態,倘若其初始值不足以代表他的資料型態,在宣告時必需特別指出,即在常數或變數後面加上冒號( :)以及其資料型態。

範例:
1. let implicitIntegerConstant = 50
2. let implicitDoubleConstant = 30.0
3. let explicitDoubleConstant: Double = 30
4. let explicitFloatConstant: Float = 4

範例中的 implicitIntegerConstant 及 implicitDoubleConstant 沒有特別宣告,因此他們的資料型態分別為 Int 及 Double,而 explicitDoubleConstant 及 explicitFloatConstant 則特別宣告為 Double 及 Float。

字串與數值間的資料型態不會自動轉換,需特別指定另一個值才可轉換。

範例:
1. let label = "She has"
2. let kids= 3
3. let kidslabel = label + String(kidsNumber) + " kids"

範例
1. let boys = 1
2. let girls = 2
3. let kidslabel = "She has \(boys + girls) kids"

2017年12月25日 星期一

Happy Christmas

Merry Christmas!
#莊智淵#陶笛#聖誕節歌曲~
#Ocarina #Eric Chuang#



2009年7月12日 星期日

可愛極了的小燕子


話說我和我老公上週六要到新家巡視的時候,騎著我們的小ㄅㄨㄅㄨ車,經過中正橋下在等紅燈時,眼尖的老公看到了正在地上掙扎的燕子幼鳥,超有愛心的老公當場將燕子救離地,想把它送回鳥窩裡,但燕子窩實在太高了,而且路人皆說鳥媽媽不會餵了,我們就趕快到對面的鳥店,問看看是否有救。
老闆說餵它吃麵包蟲,餵食的時候,用夾子將麵包蟲頭夾扁,再沾一點水餵小燕子,十天之後它應可以飛翔,再放走即可。
麵包蟲~~~我的天啊~實在可怕~
不過為了小燕子的活命,也只好衝了。
先衝回家救鳥,回家要餵時,小燕子卻奄奄一息,整個軟啪啪的,又不張口吃,我快要嚇死了,一方面怕蟲一方面看鳥快死了又很急,老公也是很緊張,好不容易將蟲子塞入小燕子的嘴裡,它吃了蟲後,似乎又活了起來。真是令人鬆了一口氣。
貼上小燕子的照片,給大家瞧瞧~



2008年12月19日 星期五

馬修連恩 - 臺北捷運2008出口音樂節 - 12月20日(週六)

97年12月20日(星期六)晚上7時至9時30分,於淡水站外廣場(9號廣場),邀請馬修連恩與六人樂團演出,馬修連恩與6位中西樂樂手以二胡、竹簫、非洲鼓、電吉他、木吉他等中外樂器,掃除繁忙都會人的煩躁與鬱悶。

===========================
樂手名單:
笛蕭/黃殷鐘
二胡/周以謙
貝斯/魏馬丁
爵士鼓/陳玟瑋
電吉他/莊智淵(Eric)
木吉他/盧家宏
===========================
相關連結:
http://www.trtc.com.tw/c/hotshow.asp?id=1686
http://news.sina.com.tw/article/20081204/1142412.html
http://www.libertytimes.com.tw/2008/new/dec/4/today-taipei14.htm
http://times.hinet.net/times/art ... &option=society