здесь простая модель Синглтон в Swift, она исходит от:о шаблоне Singleton в Swift
https://github.com/hpique/SwiftSingleton
class Test {
static let shareTest = Test()
var a = 1
init() {
println("testSingeleTon")
}
}
и вот тест функции:
func testFunc() {
var s1 = Test.shareTest
var s2 = Test.shareTest
var s3 = Test.shareTest
var s4 = Test.shareTest
func printPointer(pointer: UnsafePointer<Test>) {
println(pointer)
}
printPointer(&s1)
printPointer(&s2)
printPointer(&s4)
printPointer(&s3)
println(s1.a)
println(s2.a)
println(s3.a)
println(s4.a)
s1.a = 4444
println("s2.a = \(s2.a)")
println("s3.a = \(s3.a)")
println("s4.a = \(s4.a)")
}
и что i confused является результатом:
testSingeleTon
0x00007fff54432ad8
0x00007fff54432ad0
0x00007fff54432ac0
0x00007fff54432ac8
1
1
1
1
s2.a = 4444
s3.a = 4444
s4.a = 4444
он выглядит как шаблон singleTon, потому что просто присваивает значение s1.a, чем значение s2.a, s3.a, s4.a тоже изменилось, но если это действительно шаблон singleTon, почему & s1, & s2, & s3, & s4 совершенно разные ???
0x00007fff54432ad8
0x00007fff54432ad0
0x00007fff54432ac0
0x00007fff54432ac8
на самом деле вы не печатаете значение s1, s2, s3, s4. Вы печатаете ячейку памяти для s1, s2, s3 и s4 с помощью & sign .... помните, что в этой памяти содержится один и тот же экземпляр –
@anishparajuli , если вы хотите получить кредит за c вы должны отправить это как ответ, а не комментарий, а затем OP должен его принять. –
ok..thanks я сделал это :) –