Skip to content

Instantly share code, notes, and snippets.

View pchelnikov's full-sized avatar
:octocat:
Focusing

Michael Pchelnikov pchelnikov

:octocat:
Focusing
View GitHub Profile
@pchelnikov
pchelnikov / Optional-extensions.swift
Created August 12, 2019 08:15
Extensions for Swift Optional type
extension Optional where Wrapped == String {
func orEmpty() -> String {
return self ?? ""
}
}
@pchelnikov
pchelnikov / AutolayoutHelper.swift
Last active September 12, 2023 22:39
Swift Autolayout Helper
extension UIView {
// MARK: - Safe anchors
/// Contains view's top anchor depending to iOS version.
var safeTopAnchor: NSLayoutYAxisAnchor {
if #available(iOS 11.0, *) {
return self.safeAreaLayoutGuide.topAnchor
} else {
return self.topAnchor
@pchelnikov
pchelnikov / URLRequest-debugging.swift
Last active December 8, 2023 11:16
URLRequest debugging
//Declare extension to URLRequest:
extension URLRequest {
public var curlString: String {
// Logging URL requests in whole may expose sensitive data,
// or open up possibility for getting access to your user data,
// so make sure to disable this feature for production builds!
#if !DEBUG
return ""
@pchelnikov
pchelnikov / UIBUtton+TransformImage.swift
Created January 25, 2018 08:37
Move image to right in UIButton
button.transform = CGAffineTransform(scaleX: -1.0, y: 1.0)
button.titleLabel!.transform = CGAffineTransform(scaleX: -1.0, y: 1.0)
button.imageView!.transform = CGAffineTransform(scaleX: -1.0, y: 1.0)
b.imageEdgeInsets = UIEdgeInsets(top: 0, left: -10.5, bottom: 0, right: 0)
@pchelnikov
pchelnikov / systemUptime.swift
Last active June 25, 2020 06:52
iOS System Uptime
static func systemUptime() -> TimeInterval {
var currentTime = time_t()
var bootTime = timeval()
var mib = [CTL_KERN, KERN_BOOTTIME]
// NOTE: Use strideof(), NOT sizeof() to account for data structure
// alignment (padding)
// http://stackoverflow.com/a/27640066
// https://devforums.apple.com/message/1086617#1086617
var size = MemoryLayout<timeval>.stride
let result = sysctl(&mib, u_int(mib.count), &bootTime, &size, nil, 0)