Conversion to Swift3

This commit is contained in:
Charles Magahern
2017-05-13 00:40:03 -07:00
parent 687b45c73a
commit 091af0844a
16 changed files with 353 additions and 325 deletions

View File

@@ -10,22 +10,31 @@ import Foundation
enum XIONErrorCode: Int
{
case Unknown
case ConnectionError
case unknown
case connectionError
}
struct XIONError : Error
{
enum ErrorCode
{
case unknown
case connectionError
}
}
extension NSError
{
private static let XIONErrorDomain = "com.xionsf.controlpanel"
fileprivate static let XIONErrorDomain = "com.xionsf.controlpanel"
class func xionError(code: XIONErrorCode) -> NSError
class func xionError(_ code: XIONErrorCode) -> NSError
{
return self.xionError(code, userInfo: nil)
}
class func xionError(code: XIONErrorCode, underlying: NSError?) -> NSError
class func xionError(_ code: XIONErrorCode, underlying: NSError?) -> NSError
{
var userInfo: [NSObject : AnyObject]? = nil
var userInfo: [AnyHashable: Any]? = nil
if (underlying != nil) {
userInfo = [
NSUnderlyingErrorKey : underlying!
@@ -35,7 +44,7 @@ extension NSError
return self.xionError(code, userInfo: userInfo)
}
class func xionError(code: XIONErrorCode, userInfo: [NSObject : AnyObject]?) -> NSError
class func xionError(_ code: XIONErrorCode, userInfo: [AnyHashable: Any]?) -> NSError
{
return NSError(domain: XIONErrorDomain, code: code.rawValue, userInfo: userInfo)
}

View File

@@ -7,22 +7,22 @@
import Foundation
extension NSURL
extension URL
{
var requestParameters: [String : String]?
{
get
{
let urlComponents = self.absoluteString.componentsSeparatedByString("/")
let urlComponents = self.absoluteString.components(separatedBy: "/")
let paramsString = urlComponents[urlComponents.count - 1]
let parameterComponents = paramsString.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: "&?"))
let parameterComponents = paramsString.components(separatedBy: CharacterSet(charactersIn: "&?"))
var dict: Dictionary<String, String> = Dictionary()
for paramPair in parameterComponents {
let kvPair = paramPair.componentsSeparatedByString("=")
let kvPair = paramPair.components(separatedBy: "=")
if (kvPair.count == 2 && kvPair[0].characters.count > 0) {
let key = kvPair[0].stringByRemovingPercentEncoding!
let value = kvPair[1].stringByRemovingPercentEncoding!
let key = kvPair[0].removingPercentEncoding!
let value = kvPair[1].removingPercentEncoding!
dict[key] = value
}
}
@@ -31,7 +31,7 @@ extension NSURL
}
}
func URLByAppendingRequestParameters(params: [String : String]) -> NSURL?
func URLByAppendingRequestParameters(_ params: [String : String]) -> URL?
{
var paramsString = ""
@@ -43,14 +43,14 @@ extension NSURL
delim = "&"
}
let keyParam = key.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
let valueParam = value.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
let keyParam = key.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)
let valueParam = value.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)
paramsString += "\(delim)\(keyParam!)=\(valueParam!)"
}
var absoluteString = self.absoluteString
absoluteString += paramsString
return NSURL(string: absoluteString)
return URL(string: absoluteString)
}
}

View File

@@ -10,11 +10,11 @@ import Foundation
class Semaphore
{
private var _semaphore: dispatch_semaphore_t
fileprivate var _semaphore: DispatchSemaphore
init(value: Int)
{
_semaphore = dispatch_semaphore_create(value)
_semaphore = DispatchSemaphore(value: value)
}
func wait()
@@ -22,18 +22,21 @@ class Semaphore
self.wait(nil)
}
func wait(untilDate: NSDate?)
func wait(_ untilDate: Date?)
{
var time: dispatch_time_t = DISPATCH_TIME_FOREVER
if (untilDate != nil) {
time = UInt64(untilDate!.timeIntervalSinceNow) * NSEC_PER_SEC
var time: DispatchTime = DispatchTime.distantFuture
if let untilDate = untilDate {
time = .now() + .milliseconds(Int(untilDate.timeIntervalSinceNow * 1000))
}
dispatch_semaphore_wait(_semaphore, time)
let result = _semaphore.wait(timeout: time)
if (result != .success) {
print("semaphore timed out")
}
}
func signal()
{
dispatch_semaphore_signal(_semaphore)
_semaphore.signal()
}
}

View File

@@ -8,11 +8,11 @@
import Foundation
class StandardErrorOutputStream: OutputStreamType
class StandardErrorOutputStream: TextOutputStream
{
func write(string: String)
func write(_ string: String)
{
let stderr = NSFileHandle.fileHandleWithStandardError()
stderr.writeData(string.dataUsingEncoding(NSUTF8StringEncoding)!)
let stderr = FileHandle.standardError
stderr.write(string.data(using: String.Encoding.utf8)!)
}
}