Swift - Snippets: Unterschied zwischen den Versionen
| Zeile 46: | Zeile 46: | ||
== Extensions == | == Extensions == | ||
[[Swift - View Extensions]] | [[Swift - View Extensions]] | ||
| + | |||
| + | == Klassen == | ||
| + | === Klassen vergleichen === | ||
| + | How can I check if two instances of a class are the same | ||
| + | |||
| + | In Swift, you can check if two instances of a class are the same by using the equality operator (==) or the identity operator (===). | ||
| + | |||
| + | The equality operator == checks if two instances have the same values for their properties. In order for this to work, the class must conform to the Equatable protocol and implement the == operator: | ||
| + | |||
| + | <syntaxhighlight lang="swift"> | ||
| + | |||
| + | class MyClass: Equatable { | ||
| + | let property: Int | ||
| + | |||
| + | static func == (lhs: MyClass, rhs: MyClass) -> Bool { | ||
| + | return lhs.property == rhs.property | ||
| + | } | ||
| + | } | ||
| + | |||
| + | let instance1 = MyClass(property: 1) | ||
| + | let instance2 = MyClass(property: 1) | ||
| + | let isEqual = instance1 == instance2 // true | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | The identity operator === checks if two instances refer to the same memory address. It checks if two instances are the same instance. | ||
| + | |||
| + | <syntaxhighlight lang="swift"> | ||
| + | |||
| + | let instance1 = MyClass(property: 1) | ||
| + | let instance2 = MyClass(property: 1) | ||
| + | let isIdentical = instance1 === instance2 // false | ||
| + | </syntaxhighlight> | ||
| + | Note: It is recommended to use the === operator if you need to check if two instances are the same instance, and use the == operator if you need to check if two instances have the same values for their properties. | ||
Version vom 3. Februar 2023, 20:50 Uhr
Links
Swift (Programmiersprache) https://www.swift.org/
Random / Range
Mit Random erzeugt man Zufallszahlen. Mit dem Range Operator kann man Zahlenbereiche definieren.
let score = Int.random(in: 1...10) let rating = Int.random(in: 1..<10) let floatNumber = Float.random(in: 1...10) let bool = Bool.random(in: 1...10)
Time
Swift - delay code execution
Sound
Swift - Play a Sound
Gestures and Motions
Swift - Shake Motion
String Manipulation
Swift - get file extension Swift - Strings als Double validieren
Files
How can I get the filename without the extension?
In Swift, you can get the file name without the extension by using the lastPathComponent property of the URL class and then removing the extension using the deletingPathExtension method. Here is an example:
let fileURL = URL(fileURLWithPath: "/path/to/file.txt")
let fileNameWithoutExtension = fileURL.deletingPathExtension().lastPathComponent
print(fileNameWithoutExtension) // Output: "file"
You can also achieve the same result using the NSString API, here's an example:
let filePath = "/path/to/file.txt"
let fileNameWithoutExtension = (filePath as NSString).deletingPathExtension
print(fileNameWithoutExtension) // Output: "file"
JSON in Swift
Swift & JSON
Farben
UIColor Erweiterung für Hexadezimalwerte
Extensions
Swift - View Extensions
Klassen
Klassen vergleichen
How can I check if two instances of a class are the same
In Swift, you can check if two instances of a class are the same by using the equality operator (==) or the identity operator (===).
The equality operator == checks if two instances have the same values for their properties. In order for this to work, the class must conform to the Equatable protocol and implement the == operator:
class MyClass: Equatable {
let property: Int
static func == (lhs: MyClass, rhs: MyClass) -> Bool {
return lhs.property == rhs.property
}
}
let instance1 = MyClass(property: 1)
let instance2 = MyClass(property: 1)
let isEqual = instance1 == instance2 // true
The identity operator === checks if two instances refer to the same memory address. It checks if two instances are the same instance.
let instance1 = MyClass(property: 1)
let instance2 = MyClass(property: 1)
let isIdentical = instance1 === instance2 // false
Note: It is recommended to use the === operator if you need to check if two instances are the same instance, and use the == operator if you need to check if two instances have the same values for their properties.