Я пытаюсь использовать метод set для вызова функции после изменения значения.Набор свойств протокола Swift не выполнен
Я не понял, почему метод set не вызывается.
Код может быть непосредственно выполнен в детской площадке
//: Playground - noun: a place where people can play
import UIKit
protocol RandomItem {
var range : (Int,Int) {get set}
var result : Int {get set}
init()
mutating func createRandom()
}
extension RandomItem {
var range : (Int,Int) {
get {
return range
}
set {
range = newValue
self.createRandom()
}
}
}
struct Item: RandomItem {
var range = (0,1)
var result: Int = 0
init() {
self.createRandom()
}
mutating func createRandom() {
let low = UInt32(range.0)
let high = UInt32(range.1)
result = Int(arc4random_uniform(high - low + 1) + low)
}
}
Аксессоры расширения выполняют бесконечный рекурсивный вызов. Это кажется фиктивным. –