Skip to content

Instantly share code, notes, and snippets.

@axelrivera
Last active August 3, 2017 15:40
Show Gist options
  • Save axelrivera/c60d0001d6aa10d08697 to your computer and use it in GitHub Desktop.
Save axelrivera/c60d0001d6aa10d08697 to your computer and use it in GitHub Desktop.
A repository of my frequently used methods and macros in swift
//
// SwiftUtilities.swift
//
// Created by Axel Rivera on 12/21/14.
// Copyright (c) 2014 Axel Rivera. All rights reserved.
//
import Foundation
// MARK: - Macros
func dLog(message: String, filename: String = __FILE__, function: String = __FUNCTION__, line: Int = __LINE__) {
#if DEBUG
println("[\(filename.lastPathComponent):\(line)] \(function) - \(message)")
#endif
}
func pathInDocumentsDirectory(fileName: String) -> String! {
var documentStr: String!
let dirArray = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
if let document = dirArray {
if let str = document[0] as? String {
documentStr = str.stringByAppendingPathComponent(fileName)
}
}
return documentStr
}
func deletePathInDocumentDirectory(fileName: String) -> Bool {
let filePath = pathInDocumentsDirectory(fileName)
return NSFileManager.defaultManager().removeItemAtPath(filePath, error: nil)
}
func pathInTemporaryDirectory(fileName: String) -> String! {
var tmpStr: String!
if let tmpDir = NSTemporaryDirectory() {
tmpStr = tmpDir.stringByAppendingPathComponent(fileName)
}
return tmpStr
}
func deletePathInTemporaryDirectory(fileName: String) -> Bool {
let filePath = pathInTemporaryDirectory(fileName)
return NSFileManager.defaultManager().removeItemAtPath(filePath, error: nil)
}
// MARK: - UIColor Extension
extension UIColor {
convenience init(hex: NSInteger) {
self.init(hex: hex, alpha: 1.0)
}
convenience init (hex: NSInteger, alpha: CGFloat) {
let red = CGFloat((hex & 0xFF0000) >> 16) / 255.0
let green = CGFloat((hex & 0xFF00) >> 8) / 255.0
let blue = CGFloat((hex & 0xFF)) / 255.0
self.init(red: red, green: green, blue: blue, alpha: alpha)
}
}
// MARK: - NSDecimalNumber Extension
extension NSDecimalNumber {
struct NumberFormatter {
static var currency: NSNumberFormatter {
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.positiveFormat = "¤#,##0.00"
formatter.negativeFormat = "-¤#,##0.00"
return formatter
}
}
func currencyString() -> String! {
return NumberFormatter.currency.stringFromNumber(self)
}
func isEqualToDecimalNumber(number: NSDecimalNumber) -> Bool {
return self.isEqualToNumber(number)
}
func isGreaterThanDecimalNumber(number: NSDecimalNumber) -> Bool {
return self.compare(number) == NSComparisonResult.OrderedDescending
}
func isLessThanDecimalNumber(number: NSDecimalNumber) -> Bool {
return self.compare(number) == NSComparisonResult.OrderedAscending
}
func isGreaterThanOrEqualToDecimalNumber(number: NSDecimalNumber) -> Bool {
return self.isGreaterThanDecimalNumber(number) || self.isEqualToDecimalNumber(number)
}
func isLessThanOrEqualToDecimalNumber(number: NSDecimalNumber) -> Bool {
return self.isLessThanDecimalNumber(number) || self.isEqualToDecimalNumber(number)
}
func isEqualToZero() -> Bool {
return self.isEqualToDecimalNumber(NSDecimalNumber.zero())
}
}
// MARK: - Table Data Structures
typealias TableContent = [String: Any]
struct TableSection {
var title: String?
var footer: String?
var rows = [TableRow]()
init(title: String?, rows: [TableRow]) {
self.title = title
self.rows = rows
}
}
struct TableRow {
var content = TableContent()
var height: CGFloat?
var allowNavigation = false
init(content: TableContent) {
self.content = content
}
init(content: TableContent, allowNavigation: Bool) {
self.content = content
self.allowNavigation = allowNavigation
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment