Skip to content

Instantly share code, notes, and snippets.

View banwanko's full-sized avatar

RYUJI WATANABE banwanko

View GitHub Profile
@banwanko
banwanko / StringReplaceExtension.swift
Created August 26, 2021 08:47
String extension. Performs multiple replacements at once.
extension String {
func replace(_ dictionary: [String: String]) -> String {
dictionary.reduce(into: self) { result, data in
result = result.replacingOccurrences(of: data.key, with: data.value)
}
}
}
@banwanko
banwanko / wait_async.swift
Created February 28, 2020 13:05
非同期処理がすべて終わった後に処理を実行する方法
let dispatchGroup = DispatchGroup()
let dispatchQueue = DispatchQueue(label: "queue", attributes: .concurrent)
(1...10).forEach { index in
dispatchGroup.enter()
dispatchQueue.async(group: dispatchGroup) {
// --- 処理 ---
sleep(UInt32(Int.random(in: 1..<4)))
print("index: \(index)")
// --- end ---
dispatchGroup.leave()
@banwanko
banwanko / DataExtension.swift
Created August 13, 2019 08:45
Data async download
extension Data {
static func async(contentsOf url: URL, completion: @escaping (Data?) -> Void) {
DispatchQueue.global().async {
DispatchQueue.main.async {
let result: Data? = try? Data(contentsOf: url)
completion(result)
}
}
}
}
@banwanko
banwanko / UIImage+DifferentColor.swift
Last active July 28, 2016 02:33
【UIImage拡張】指定画像の色を変更した新しい画像を生成する
extension UIImage {
/**
指定画像の色を変更した新しい画像を生成する (alpha値が0以外のものを全てを変える)
- parameter originalImage: 対象画像
- parameter color: 変更カラー
- returns: 生成された画像
*/
static func differentColor(originalImage: UIImage, color: UIColor) -> UIImage {
@banwanko
banwanko / apns.php
Last active July 15, 2016 03:43
iOSにPushを送信する
<?php
$deviceToken = "デバイストークンをいれる";
$host = "gateway.push.apple.com";
$port = 2195;
$cert = "apn_dist.pem"; // 同じディレクトリに”apn_dist.pem”という名前で証明書を置いておく
$aps = array();
$aps["aps"] = array(
"alert"=>"テスト"
,"badge" =>1
class Hoge {
let disposeBag = DisposeBag()
func fuga(completed: (error: ErrorType?) -> () = { _ in} ) {
let createProc = { (deviceToken: String) -> Observable<String> in
Observable.create { observer in
// 非同期。エラーにしてみる
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)) {
observer.onError(NSError(domain: "", code: 1, userInfo: nil))
observer.onCompleted()
}
@banwanko
banwanko / NSDate+NowLocalDate
Created April 20, 2016 16:16
NSDateで現在のシステムの日時を取得する
extension NSDate {
class func NowLocalDate() -> NSDate {
return NSDate(timeIntervalSinceNow: Double(NSTimeZone.systemTimeZone().secondsFromGMT))
}
}
@banwanko
banwanko / NSData+HexString.swift
Created March 29, 2016 01:51
NSData to Hex string
extension NSData {
func hexString() -> String {
return (0..<length).reduce("") { (hex, index) in
var byte = UInt8(0)
getBytes(&byte, range: NSMakeRange(index, 1))
return hex + String(format: "%02x", arguments: [byte])
}
}
}
@banwanko
banwanko / class
Created January 8, 2016 08:24
Swiftで配列内のクラスと構造体の値を変更してみる ref: http://qiita.com/roworks/items/591b50cad95522a56281
class Hoge {
var fuga = 0
}
let array = [Hoge(), Hoge()] // letでOK
// forEachで配列データをいじる
array.forEach { $0.fuga = 1 }
array // [{fuga 1}, {fuga 1}]
// mapで配列のデータをいじる
let _ = array.map { $0.fuga = 2 }
@banwanko
banwanko / gist:6172138
Last active December 20, 2015 17:58
CATiledLayerのフェード時間変更
+ (CFTimeInterval)fadeDuration {
CFTimeInterval result = 0.1f; // フェードインする時間
return result;
}