swift nsobject class 如何 return 取值

swift nsobject class how to return value

我是 swift 的新手,如何创建通用 class 和 return 字符串这是我的代码,但我犯了错误请帮助我。这是我的 nsobject common class

import UIKit

    class DayCount: NSObject {

        func doSomething(getDate:String)  -> String   {


            let start = "2015­06­01"

            let end = NSDate()

            let dateFormatter = NSDateFormatter()

            dateFormatter.dateFormat = "yyyy­MM­dd"

            var endDateSting:String = dateFormatter.stringFromDate(end)

            let startDate:NSDate = dateFormatter.dateFromString(start)!

            let endDate:NSDate = dateFormatter.dateFromString(endDateSting)!

            let cal = NSCalendar.currentCalendar()

            let unit:NSCalendarUnit = .CalendarUnitDay

            let components = cal.components(unit, fromDate: startDate, toDate:

                endDate, options: nil)

            println(components)
            let date:String? = (self.timeAgoSinceDate(startDate, numericDates: Bool()))

            println(date)

            return date!


            }

        func timeAgoSinceDate(date:NSDate, numericDates:Bool) -> String {
            let calendar = NSCalendar.currentCalendar()

            let unitFlags = NSCalendarUnit.CalendarUnitMinute |

                NSCalendarUnit.CalendarUnitHour | NSCalendarUnit.CalendarUnitDay |

                NSCalendarUnit.CalendarUnitWeekOfYear

            NSCalendarUnit.CalendarUnitMonth | NSCalendarUnit.CalendarUnitYear |

                NSCalendarUnit.CalendarUnitSecond

            let now = NSDate()

            let earliest = now.earlierDate(date)

            let latest = (earliest == now) ? date : now

            let components:NSDateComponents = calendar.components(unitFlags,

                fromDate: earliest, toDate: latest, options: nil)

            if (components.year >= 2) {

            } else if (components.year >= 1){

            } else if (components.month >= 2) {

            } else if (components.month >= 1){

            } else if (components.weekOfYear >= 2) {

            } else if (components.weekOfYear >= 1){

            } else if (components.day >= 2) {

            } else if (components.day >= 1){

            } else if (components.hour >= 2) {

            } else if (components.hour >= 1){

                return "\(components.year) years ago"

                if (numericDates){

                    return "1 year ago"

                } else {

                    return "Last year"

                }

                return "\(components.month) months ago"

                if (numericDates){

                    return "1 month ago"

                } else {

                    return "Last month"

                }

                return "\(components.weekOfYear) weeks ago"

                if (numericDates){

                    return "1 week ago"

                } else {

                    return "Last week"

                }

                return "\(components.day) days ago"

                if (numericDates){

                    return "1 day ago"

                } else {

                    return "Yesterday"

                }

                return "\(components.hour) hours ago"

                if (numericDates){

                    return "1 hour ago"

                } else {

                    return "An hour ago"

                }

            } else if (components.minute >= 2) {

                return "\(components.minute) minutes ago"

            } else if (components.minute >= 1){

                if (numericDates){

                    return "1 minute ago"

                } else {

                    return "A minute ago"

                }

            } else if (components.second >= 3) {

                return "\(components.second) seconds ago"

            } else {

                return "Just now"

            }
            return ""
        }





    }

和我的视图控制器我得到了这样的字符串,但它 return 总是错误

let getdate = (DayCount.doSomething("sdfsdfsd")) 
        println("date===== \(getdate)")

错误是“(string)-> string is not conversionable to DayCount” 我也试过这个

let getdate:String = (DayCount.doSomething("sdfsdfsd"))
        println("date===== \(getdate)")

但它总是return我的错误请帮助我在哪里我做错了

let getdate = (DayCount.doSomething("sdfsdfsd")) 

不会工作,因为它的语法不正确。 doSomething 是一个方法,DayCount 是一个class。在 class 的实例变量上调用方法。 例如

var aDayCounter : DayCount

是一种定义 Daycount 类型变量的方法。然后,您可以在该类型上调用方法

aDayCounter.doSomething("sdfsdfsd")

您还可以定义 Class 方法或类型方法,因为它们在 Swift 中被调用。 Apple 开发网站对此的解释比我能做的更好:

https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html