首先我們來創建一個類吧,然后在里面聲明屬性與方法
class BaseUser {
var userName:String = "swh"
var password:String = "123"
//這里面有一個構造方法,其實就類似我們重寫init方法一樣,然后可以加些參數
//但是我們在聲明該類的時候直接在類名后面接括號就可以了哦
init(username:String, password:String) {
self.userName = username
self.password = password
}
var name:String {
//下面是set方法的兩種定義
set (value) {
self.userName = value
println("method set")
}
// set {
// self.userName = newValue
// println("method set")
// }
get {
println("method get")
return self.userName
}
}
func toString()-> String {
return "username:\(self.userName):\(self.password)"
}
}這時候我們來調用對應的屬性與方法
//聲明并初始化
var user = BaseUser(username: "kutian", password: "123456")
println(user.toString())
user.name = "kutian"
println("\(user.name) \(user.password)")接下來,我們繼續創建一個類來繼承之前的類
繼承,跟大家想的沒聲明區別
class AdminUser: BaseUser {
var managerModel:String = "爐石傳說"
override func toString() -> String {
return "爐石傳說"
}
}
var adminUser = AdminUser(username: "swh", password: "123")
println(adminUser.toString())好啦,接下來我們創建枚舉
我們可以直接賦值,也可以弄一個方法,讓它返回新值
enum Suit:String {
case Spades = "黑桃", Hearts = "紅桃", Diamonds = "方塊", Clubs = "梅花"
func toString()-> String {
switch self {
case .Spades:
return "黑桃"
case .Hearts:
return "紅桃"
case .Diamonds:
return "方塊"
case .Clubs:
return "梅花"
default :
return "鬼牌"
}
}
}然后調用枚舉里面涉及到的一些方法
這里面有新的rawValue還有!是把任意nil轉為正常的哦
var suit = Suit.Hearts println(suit.rawValue) let tempSuit = Suit(rawValue: "梅花") println(tempSuit!.rawValue)
我們也可以新建一個類,并在里面聲明某個屬性是枚舉類型
好啦,我們來創建一個結構體吧
struct Hero {
static var isGirl:Bool = false
var rank:Rank
var name:CompassPointType
func toString()-> String {
return "\(name):\(rank.rawValue)"
}
}其實它跟類還是差不多的,只是它傳值的時候并不涉及傳地址哦
然后我們來寫個協議吧
protocol SimpleProtocol {
var value:String {get}
func toString()-> String
mutating func update()
}
protocol BaseProtocol {
func equal()-> Bool
}
class SuperClass {
var name:String = "swh"
}接下來創建一個類來遵循并實現這個協議
class SubClss: SuperClass, SimpleProtocol, BaseProtocol {
var value:String = "defalut"
func toString()-> String {
return value
}
func update() {
value = "new value"
}
func equal() -> Bool {
return false
}
}再接下來,我們再寫一個擴展好了
class Rect {
var width:Int = 50
var height:Int = 100
}
extension Rect:BaseProtocol {
func area()-> Int {
return width * height
}
func equal() -> Bool {
return height == width
}
}
extension Int {
func toString()-> String {
return "你猜"
}
}類和協議就比較好理解了,與O-C沒有什么區別的哦
OK,就這么多咯
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。