- 1
Нюхайте аудионаркотики.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Нюхайте аудионаркотики.
0
struct Ololo: Comparable {
let value: Int
static func < (lhs: Ololo, rhs: Ololo) -> Bool {
return lhs.value < rhs.value
}
static func < (lhs: Ololo, rhs: Ololo) -> String {
if lhs.value < rhs.value {
return "LESS"
} else if lhs.value > rhs.value {
return "MORE"
} else {
return "EQUAL"
}
}
}
let ololo1 = Ololo(value: 100)
let ololo2 = Ololo(value: 200)
let bool: Bool = ololo1 < ololo2
let string: String = ololo1 < ololo2
А в плюсах можно в operator> любую херь вернуть © jojaxon
Наверное, я поторопился, когда сказал, что крестобляди будет в свифте тесно.
0
import Foundation
@objc protocol SomethingDoable {
func doSomething()
}
class Inner: SomethingDoable {
@objc func doSomething() {
print("Inner!")
}
}
@objc class Outer: NSObject {
let inner: SomethingDoable = Inner()
override func forwardingTarget(for aSelector: Selector!) -> Any? {
return inner
}
}
let outer = Outer()
outer.perform(#selector(SomethingDoable.doSomething))
Удачного дебага!
0
1024--, становись раком и раздвигай булки
Тrавите куколда-админа
0
ЕБАНУТЬСЯ ПАЛКИ ГНУТЬСЯ
ЕБАНУТЬСЯ ПАЛКИ ГНУТЬСЯ
ЕБАЛ СТРАЙКЕРА И БОРМАНДА
ОНИ СТОНАЛИ СЛОВНО ГЕЙ ШЛЮХИ
ХОТЯ ОНИ И ЕСТЬ ГЕЙ ШЛЮХИ
0
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
0
ХУЙ
ХУЙ
ХУЙ
ХУЙ
ХУЙ
ХУЙ
ХУЙ
ХУЙ
ХУЙ
ХУЙХУЙХУЙХУЙХУЙХУЙ
ХУЙ
0
https://www.rbc.ru/rbcfreenews/5d94d5a19a79473a38d1b068
0
/* Create a JSON object from JSON data stream. The stream should be opened and configured. All other behavior of this method is the same as the JSONObjectWithData:options:error: method.
*/
open class func jsonObject(with stream: InputStream, options opt: ReadingOptions = []) throws -> Any {
var data = Data()
guard stream.streamStatus == .open || stream.streamStatus == .reading else {
fatalError("Stream is not available for reading")
}
repeat {
var buffer = [UInt8](repeating: 0, count: 1024)
var bytesRead: Int = 0
bytesRead = stream.read(&buffer, maxLength: buffer.count)
if bytesRead < 0 {
throw stream.streamError!
} else {
data.append(&buffer, count: bytesRead)
}
} while stream.hasBytesAvailable
return try jsonObject(with: data, options: opt)
}
Потоковое чтение JSON от авторов "iСделаль"
0
import SwiftUI
struct LandmarkDetail: View {
@EnvironmentObject var userData: UserData
var landmark: Landmark
var landmarkIndex: Int {
userData.landmarks.firstIndex(where: { $0.id == landmark.id })!
}
var body: some View {
VStack {
MapView(landmark: landmark)
.frame(height: 300)
CircleImage(image: landmark.image(forSize: 250))
.offset(y: -130)
.padding(.bottom, -130)
VStack(alignment: .leading) {
HStack {
Text(landmark.name)
.font(.title)
Button(action: {
self.userData.landmarks[self.landmarkIndex].isFavorite.toggle()
}) {
if self.userData.landmarks[self.landmarkIndex].isFavorite {
Image(systemName: "star.fill")
.foregroundColor(Color.yellow)
} else {
Image(systemName: "star")
.foregroundColor(Color.gray)
}
}
}
HStack(alignment: .top) {
Text(landmark.park)
.font(caption)
Spacer()
Text(landmark.state)
.font(.caption)
}
}
.padding()
Spacer()
}
.navigationBarTitle(Text(landmark.name), displayMode: .inline)
}
}
https://developer.apple.com/tutorials/swiftui/handling-user-input
Принципиально новый нескучный "декларативный" UI от компании Apple. В наличии:
* магические константы
* спагетти из замыканий
* биндинги, страшные как атомная война
* где-то внутри модная хипстерская реактивная либа
На фоне этого кошмара qml кажется вершиной инженерной мысли