Skip to content

Instantly share code, notes, and snippets.

@es-kumagai
es-kumagai / EzSample_GetDataAfterSomeWeeks
Created August 8, 2012 07:53
Get a date that after some weeks from a date. (iOS, Xcode 4.4.1, ARC)
- (NSDate*)dateAfterWeeks:(NSInteger)weeks fromDate:(NSDate*)date
{
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* someWeeksComponent = [[NSDateComponents alloc] init];
someWeeksComponent.week = weeks;
return [calendar dateByAddingComponents:someWeeksComponent toDate:date options:0];
}
@es-kumagai
es-kumagai / EzSample_GetDateOfNextWeekday
Created August 8, 2012 10:46
Get a date that next weekday from a date. (iOS, Xcode 4.4.1, ARC)
- (NSDate*)dateOfNextWeekday:(NSInteger)weekday fromDate:(NSDate*)date
{
NSCalendar* calendar = [NSCalendar currentCalendar];
// 渡された日付から曜日を取り出します。
NSDateComponents* baseComponents = [calendar components:NSWeekdayCalendarUnit fromDate:date];
NSDateComponents* addingComponents = [[NSDateComponents alloc] init];
// 指定された曜日だけ進めます。
NSInteger addingDay = weekday - baseComponents.weekday;
@es-kumagai
es-kumagai / gist:082136081610541d7a13
Created May 16, 2014 03:00
Write to Preporcessed Info.plist File
infoPlistFile=${TEMP_DIR}/Preprocessed-Info.plist
timeData=`date +"%H%M%S"`
/usr/libexec/PlistBuddy -c "Set:CFBundleDisplayName $timeData" "${infoPlistFile}"
infoPlistFile="${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${infoPlistFile}")
buildNumber=$((${buildNumber%%.*} + 1))
/usr/libexec/PlistBuddy -c "Set:CFBundleVersion $buildNumber" "${infoPlistFile}"
@es-kumagai
es-kumagai / gist:9660327c8b6da0eafc25
Last active August 29, 2015 14:20
Segmentation fault: 11 in Swift 1.2 in Xcode 6.3.1
protocol Protocol {
init()
}
struct Struct : Protocol, Printable {
init() {
}
protocol FloatingType {
var floatValue:Double { get }
}
extension CGFloat : FloatingType {
var floatValue:Double {
return self.native
@es-kumagai
es-kumagai / CodePiece.swift
Created July 22, 2015 07:22
そういえば guard でも普通に where が使えるんですね。 #CodePiece
guard let string = string where !string.isEmpty else {
}
@es-kumagai
es-kumagai / CodePiece.swift
Created July 22, 2015 12:39
このアプリを使うとコードをたとえばこんな感じにツイートできます。 #cswift #CodePiece
struct MyStruct {
func hello() {
print("hello world")
}
}
@es-kumagai
es-kumagai / CodePiece.swift
Created July 23, 2015 10:08
guard で where を Playground で試してみたらうまく動かなくておかしいなと思っていたら、大域だと動きが違う様子でした。 #CodePiece
// この場合はエラー
// 大域で、同じ変数名で Optional Binding するとビルドが通らない(string が Optional のまま)
guard let string = string where !string.isEmpty else {
print("GUARD")
exit(0)
}
// この場合は OK
// 大域でも別の変数名で Binding すると通る(新しい変数 s なら Optional が解けている)
@es-kumagai
es-kumagai / CodePiece.swift
Created July 23, 2015 10:27
もしかして Swift の大域はスコープという概念がない、もしくは特殊っぽい? #CodePiece
// 大域だと先に 1 が表示される
defer {
print(1)
}
print(2)
// 関数だと先に 2 が表示される
func test() {