Three.jsを使って、作ってみた

プログラミング関連の事を色々書いています(^^) 週末はレストランやコンビニのお菓子のことを書いています。

Swift 現在日時を取得する NSDateComponent

今回は、swiftで、現在の日時を取得する方法を書きます。

まず、始めに現在の年を取得します。
このように書きます。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let date = NSDate()
        let calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)!
        let comps: NSDateComponents = calendar.components(NSCalendarUnit.YearCalendarUnit, fromDate: date)
        
        println(comps.year)
    }

}

実行結果
f:id:gupuru:20150104161109p:plain


ちなみに和暦を取得したい場合は、「・・・calendarIdentifier:NSGregorianCalendar」の部分を「・・・calendarIdentifier: NSJapaneseCalendar」に変更します。

  let calendar = NSCalendar(calendarIdentifier: NSJapaneseCalendar)!

実行結果
f:id:gupuru:20150104161501p:plain


「年」以外にも、「月」,「日」,「時」を取得したい場合は、この部分を・・・

  let comps: NSDateComponents = calendar.components(NSCalendarUnit.YearCalendarUnit, fromDate: date)

このような感じに変更します。↓↓

let comps: NSDateComponents = calendar.components(NSCalendarUnit.YearCalendarUnit|NSCalendarUnit.MonthCalendarUnit|NSCalendarUnit.DayCalendarUnit|NSCalendarUnit.HourCalendarUnit|NSCalendarUnit.MinuteCalendarUnit|NSCalendarUnit.SecondCalendarUnit,
            fromDate: date)
        
        println("年 \(comps.year)")
        println("月 \(comps.month)")
        println("日 \(comps.day)")
        println("時 \(comps.hour)")
        println("分 \(comps.minute)")
        println("秒 \(comps.second)")

実行結果
f:id:gupuru:20150104162251p:plain

「NSCalendarUnit.〜」のそれぞれは、

NSCalendarUnit.YearCalendarUnit ・・・「年」

NSCalendarUnit.MonthCalendarUnit ・・・「月」

NSCalendarUnit.DayCalendarUnit ・・・「日」

NSCalendarUnit.HourCalendarUnit ・・・「時」

NSCalendarUnit.MinuteCalendarUnit ・・・「分」

NSCalendarUnit.SecondCalendarUnit ・・・「秒」

となっています。

他にも、「曜日」,「一年の何週目」,「第何四半期」なども取得できます。
ちなみに「曜日」を取得するには、このように書きます。

 let date = NSDate()
        let calendar = NSCalendar(calendarIdentifier: NSJapaneseCalendar)!
        let comps: NSDateComponents = calendar.components(NSCalendarUnit.WeekdayCalendarUnit,fromDate: date)
        
        println(comps.weekday)

実行結果
f:id:gupuru:20150104163241p:plain
曜日の場合は、
1:日曜日
2:月曜日
3:火曜日
4:水曜日
5:木曜日
6:金曜日
7:土曜日
となっているようです。

これで、終わります。


参考サイト
[Swift]NSDateComponentで日付の各要素を取得 - Qiita
NSDateから曜日を取得する - ワテのブログ

Swiftは、まだまだ勉強中ですので、間違っているかもしれません。間違っていましたら、ご指摘をお願いしますm(_ _)m

swiftで、タイマー(Timer)を使ってみる

今回は、Swiftでタイマー(Timer)を使う方法を書きます。

こんな感じに使います。

import UIKit

class ViewController: UIViewController {
    
    //タイマー
    var timer: NSTimer!
    var cnt: Float = 0
                        
    override func viewDidLoad() {
        super.viewDidLoad()   
    }
    
    @IBAction func timerBtn(sender: UIButton) {

        //タイマーを作る.
        timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "onUpdate:", userInfo: nil, repeats: true)

    }
    
    func onUpdate(timer : NSTimer){
        cnt += 0.1
        if cnt > 5.0 {
            if timer.valid  {
                //timerを停止する.
                timer.invalidate()
            }
        }
    }
   
}

f:id:gupuru:20141223225355p:plain
上のプログラムは、「Button」を押すとタイマーがスタートします。


こちらの部分で、タイマーを作ります。

 var timer: NSTimer!
 timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "onUpdate:", userInfo: nil, repeats: true)

第1引数の部分は、タイマーを発生させる間隔です。例えば、0.1なら0.1秒間隔になります。1.0なら1.0秒間隔です。

第2引数の「target」は、タイマー発生時に呼び出すメソッドがあるターゲットを指定します。通常は「self」で大丈夫だと思います。

第3引数の「selector」の部分は、タイマー発生時に呼び出すメソッドを指定します。今回の場合は「onUpdate」を呼び出しています。
ちなみに、「selector」の部分は「 Selector("onUpdate")」という書き方もできます。こういうふうに書く場合は、呼び出すメッソドの引数の部分を、

    func onUpdate(timer : NSTimer)

このように変えてください。↓↓

    func onUpdate()

第4引数の「userInfo」は、selectorで呼び出すメソッドに渡す情報を指定します。

第5引数の「repeats」は、タイマーの実行を繰り返すかどうかです。trueの場合、繰り返します。falseは1回のみです。


次に、こちらの部分です。

if timer.valid  {
   timer.invalidate()
}

「〜.valid」で、タイマーが動いているかどうかの判定ができます。
そして、「invalidate()」でタイマーを停止することができます。

これで、終わります。


参考サイト
Swiftでアニメーションとタイマーを使ってみた - Qiita
NSTimer - iPhoneアプリ開発の虎の巻

Swiftは、まだまだ勉強中ですので、間違っているかもしれません。間違っていましたら、ご指摘をお願いしますm(_ _)m

Swift LineのURLスキームを使う

今回は、SwiftでLineのURLスキームを使う方法を書きます。

URLスキームって、何?という人は、こちらを見てください^^



①画像
画像をURLスキームを使って、Lineに送る方法を書きます。
この場合のURLスキームは「line://msg/image/」です。

コードはこちらです↓

 var pasteboard: UIPasteboard = UIPasteboard.generalPasteboard()
        pasteboard.image = UIImage(named: "img.png")
        var imageURL: NSURL! =  NSURL( string:"line://msg/image/" + pasteboard.name)
        
        if UIApplication.sharedApplication().canOpenURL(imageURL) {
            UIApplication.sharedApplication().openURL( imageURL )
        }

こちらを実行すると、Lineのほうに飛びます。そして、送信する相手を選ぶと、ここで指定した画像が投稿されます。
f:id:gupuru:20141026173251j:plain
※画像は、加工しています。


②テキスト + URL
今度は、テキストとURLをLineに送る方法を書きます。
この場合のURLスキームは「line://msg/text/」です。

コードはこちらです↓

   var text: String! = "てすと\r\nhttp://www.google.com/"
        var encodeMessage: String! = text.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
        var messageURL: NSURL! = NSURL( string: "line://msg/text/" + encodeMessage )
        
        if (UIApplication.sharedApplication().canOpenURL(messageURL)) {
            UIApplication.sharedApplication().openURL( messageURL )
        }

実行すると、こんな感じです。
f:id:gupuru:20141026173856j:plain

テキストの場合は、そのまま投稿されずに、入力欄の所に入る形になるようです。


lineは、他にもURLスキームがあるので、色々試してみるのも面白いかもれませんw

これで、終わります。


参考サイト
知っておくとiPhoneをもっと便利に使える「URLスキーム」とは? - たのしいiPhone! AppBank
URLスキームを使ってLINEにメッセージをカンタンに送信する方法 | Halfway