Hallo zusammen,
ich bin noch relativ neu was die Entwicklung von Swift angeht, und wäre danke für jede Hilfe. Bisher habe war ich in C# Unterwege und da gibt es für mein Problem CallerMemberName.
Best Dank
@propertyWrapper
public struct ChangeValue<Value> {
public let viewModelName: String
public let propertyName: String
private var cachedValue: Value?
public init(viewModelName: String = #function, key: String) {
self.viewModelName = viewModelName
// ich würde hier gern wissen, wie der Name des genereischen Typs ist (Property aus ViewModel! Ich bekomme immer nur "String"
self.propertyName = String(describing: Value.self)
}
public var wrappedValue: Value {
mutating get {
if cachedValue == nil { fetch() }
return cachedValue!
}
}
public mutating func fetch() {
cachedValue = nil
}
}
Lösung in C# wäre [CallerMemberName]
protected bool UpdateProperty<T>(ref T field, T value, [CallerMemberName] string propertyName = null)
{
if (Equals(field, value)) { return false; }
field = value;
RaisePropertyChanged(propertyName);
return true;
}
ich bin noch relativ neu was die Entwicklung von Swift angeht, und wäre danke für jede Hilfe. Bisher habe war ich in C# Unterwege und da gibt es für mein Problem CallerMemberName.
Best Dank
@propertyWrapper
public struct ChangeValue<Value> {
public let viewModelName: String
public let propertyName: String
private var cachedValue: Value?
public init(viewModelName: String = #function, key: String) {
self.viewModelName = viewModelName
// ich würde hier gern wissen, wie der Name des genereischen Typs ist (Property aus ViewModel! Ich bekomme immer nur "String"
self.propertyName = String(describing: Value.self)
}
public var wrappedValue: Value {
mutating get {
if cachedValue == nil { fetch() }
return cachedValue!
}
}
public mutating func fetch() {
cachedValue = nil
}
}
Lösung in C# wäre [CallerMemberName]
protected bool UpdateProperty<T>(ref T field, T value, [CallerMemberName] string propertyName = null)
{
if (Equals(field, value)) { return false; }
field = value;
RaisePropertyChanged(propertyName);
return true;
}