swift기본 문법. stride

|

for를 뒤에서 부터 돌려볼까요. reversed()라는 것을 써도 되지만 stride 를 사용해 보겠습니다.

for i in stride(from: 0, to: 5, by: 1){
   print("i:\(i)")
}
//결과는 아래와 같습니다.
i:0
i:1
i:2
i:3
i:4
for x in stride(from: 5, to: 0, by: -1){
  print("x:\(x)")
}
//결과는 아래와 같습니다. 거꾸로 진행됩니다.
x:5
x:4
x:3
x:2
x:1

알프레드 팁. Alfred Tip , Searching files

|

Alfred Tip for file searching and etc.

Alfred 를 쓰면서 몰랐던 사실!!!입니다.ㅜㅜ

중요한것 몇가지만 짚고가자면

  • 폴더나 파일 열기: open myLove.jpg 또는 ` `(Space 바)를 누름
  • 내문서나 데스크탑 열기: ~를 누르면 목록 창이 표시됨
  • 루트 디렉토리 열기: /를 누르면 목록 창이 표시됨

https://www.alfredapp.com/help/features/file-search/#file-search

또 https://sayzlim.net/handy-tips-browse-files-alfred/

  • 가장 최근 액세스한 폴더 보여주기: cmd + opt + \ 입니다.
  • 파일 목록이 있는 상태에서 shift를 누르면 미리보기가 됩니다.

Bounds in UIKit, iOS

|

우측으로 손을 swipe하면

BOUNDS의 X 값이 커집니다.

눈이 보기에는 -> 스크롤링이 좌측으로 이동하는 것으로 보입니다

extension LensViewController: UIScrollViewDelegate {
    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
  	let bounds = lensCollectionView.bounds
  	let x = bounds.origin.x + bounds.width / 2 // 우측으로 swip하면 bounds.origin.x 값이 계속 커짐.
    print("bounds x: \(bounds)")
    let y = bounds.height / 2
    let point = CGPoint(x: x, y: y)
    guard let idx = lensCollectionView.indexPathForItem(at: point) else {return}
	
    //snapping 동작을 위해서 정확히 가운데로 이동하게 함.
    lensCollectionView.scrollToItem(at: idx , at: .centeredHorizontally , animated: true )
  }
}

Background Fetch / Swift

|

2018-12-01-BackgroundFetch

Targets - Capabilities에 Background fetch를 켜줍니다. / Test환경: Xcode 10, swift 4

A9589800-F4F6-4FE8-8770-51718E9A49D9

import  UserNotifications


func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    UIApplication.shared.setMinimumBackgroundFetchInterval(UIApplication.backgroundFetchIntervalMinimum)
    if #available(iOS 10.0 , *){ //10이후에만 작동하므로.
        UNUserNotificationCenter.current().requestAuthorization(options: .badge) { (granted, error) in
            if error != nil {
                // success!
            }
        }
    }
    
    return true
}

func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    
    print("haha 실행됨.")
    UIApplication.shared.applicationIconBadgeNumber = 20
   //completionHandler(.newData)
   //completionHandler(.noData)
}

실행하자마자 앱을 내리고( 홈버튼 을 누르고)

CDB9FCF9-D97B-4BA7-8D93-A94A267DE327

Xcode - Debug - Simulate Background Fetch를 선택하면 print 문이 출력되는 것을 확인할 수 있습니다. 또한 다음처럼 아이콘이 바뀝니다.

D92D5F64-C91A-4955-8F47-8E58854AF961

끝.

참고: http://avilos.codes/mobile/ios-swift/ios-swift-멀티태스킹multitasking-백그라운드background-페치fetch/

wwwRx

|

rx links:

ray강좌 번역한것!! 세상에 이런 곳이 ..있을줄이야. 감사합니다. https://github.com/fimuxd/RxSwift/tree/master/Lectures