Sie könnte dies durch eine typealias
Schaffung für NSError
, NSErrorRef
. Sie würden sich dann auf diese Typalias in Ihrer Klasse beziehen, da sich NSError
jetzt auf eine Eigenschaft und nicht auf eine Klasse beziehen würde.
public typealias NSErrorRef = NSError
public class MyClass {
public var NSError:NSErrorRef {
return NSErrorRef(domain: "", code: 0, userInfo: nil)
}
}
Allerdings würde ich nie empfehlen dies.
Ich vermute, der einzige Grund, CGColor
heißt so im Swift-Header von UIColor
ist einfach Interoperabilität mit Objective-C zu erhalten. Warum es ohne verwirrende Fehler funktioniert - kann ich nicht sagen. Obwohl, wenn Sie tatsächlich in der Dokumentation von UIColor
suchen, sehen Sie CGColor
is actually listed as cgColor
(wenn Swift ausgewählt ist) - die zeigt, sogar Apple denkt, dass es nicht richtig definiert ist!
In jedem Fall besagt die Konvention, dass Eigenschaften mit einem Kleinbuchstaben beginnen sollten (um diese Art von Verwirrung in erster Linie zu vermeiden). So könnte man diese stattdessen tun:
public class MyClass {
public var nsError:NSError {
return NSError(domain: "", code: 0, userInfo: nil)
}
}
Oder noch besser, Sie könnten nur Ihr Eigentum nennen error
- als Präfix selten in Swift sowieso verwendet werden soll (es sei denn, Sie müssen eindeutig zu machen - was Sie wirklich brauchen erscheinen zu tun in Ihrem Fall).
public class MyClass {
public var error:NSError {
return NSError(domain: "", code: 0, userInfo: nil)
}
}
bestätigt mit einfachen 'foo' Klasse –