관련 애플 문서 : https://developer.apple.com/documentation/foundation/userdefaults 

object c 사용 포스팅 : http://bmwe3.tistory.com/1725?category=682591 

예는 array

<저장하기>

 if var keywordList = UserDefaults.standard.array(forKey: keywordField) as? [String] {

            keywordList.insert(keyword, at: 0)

            if(keywordList.count > 5)

            {

                keywordList.remove(at: 5)

            }

            UserDefaults.standard.set(keywordList, forKey: keywordField)

        }

        else {

            var newList = [String]()

            newList.append(keyword)

            UserDefaults.standard.set(newList, forKey: keywordField)

        }


<get / 꺼내쓰기>

 return UserDefaults.standard.array(forKey: keywordField) as! [String]

by 무위자연 2019.01.12 11:16

여러 개의 조건을 선택적으로 적용하는 NSPredicate를 작성하는 방법


let predicateNotebookId = NSPredicate(format: "relatedNotebookId = %@", NSNumber(value: self.selectedNoteBookId)) // basic NSPredicate

 var predicateList = [NSPredicate]()//여러 조건을 추가할 list

  predicateList.append(predicateNotebookId)


   if(self.searchText_ != "")//추가 조건 #1

   {

             let predicateSearch = NSPredicate(format: "title contains %@ OR content contains %@", self.searchText_, self.searchText_)

predicateList.append(predicateSearch)

 }

        

  if(self.button_searchByAlarm.isSelected == true)//추가 조건 #2

   {

            let predicateAlarm = NSPredicate(format: "alarmDate != nil ")

            predicateList.append(predicateAlarm)

    }

        

    let andPredicate:NSCompoundPredicate = NSCompoundPredicate(type: .and, subpredicates: predicateList)

여러 조건을 적용하여  사용한다.



by 무위자연 2019.01.12 10:12
일시 : 2018.11.6

S.시작하며
-개발 세미나 참석은 처음이라 긴장도 되고 외롭기도 했는데.
-ios 개발은 원래 외로운 거더라고요~ 대부분 3명 이하의 조직?에서 개발.. 혼자도 많고
-개발도 잘하고 발표도 잘 하는 분들 많더라!! 이봉원님은 목소리까지 짱!
-계속 공부하고 계속 새로운 것을 봐야 하고 다른 사람들은 뭐하는지 보고 살아야 겠다
-뭔가 소통하고 싶었으나...말 걸...어려웠다ㅠ

-내 기준에서 주목 혹은 기록하고 싶은 것만 정리하면 다음과 같다.
A. iOS 라브 Ruby - 김은영님
ruby로 만들어진 bundler를 이용해서 개발/배포 작업에서 도움이 되는 gem을 사용한다.(사용법은 cocoapod과 동일)
*주목한 gem

1. Houston : local 환경에서 push 테스트할  있는  gem

https://github.com/nomad/houston 

2. Fastlane :  app store 업로드  심사 신청까지 해주는 gem

https://github.com/fastlane/fastlane 

가장 큰 이점은 로컬에서 심사를 위한 업로드로 40분씩  때리지 않아도 된다~


B. RIBs - 김남현님

우버에서 제안하는 크로스 프레임 워크

https://github.com/uber/RIBs/wiki 

모든 Flow를 Tree를 그린다는 관점에서 접근하는 것은 비단 모바일에서만 가능한 일은 아닐 것으로 보인다.


C. GraphQL

REST Api의 단점을 보완하고 HTTP의 특성을 잘 살려낸 API 구현 방식

차세대가 될지는 지켜봐야 하지만 장점이 많은 방식이고 이미 적용된 사례가 생겨나고 있음(GitHub)

https://graphql.org/learn/  


Z.맺으며

경품.

벌킨, 에어팟, 애플와치4!!!!....는 다 남 이야기 ㅠ


by 무위자연 2018.11.07 13:51

uiactionsheet deprecated at iOS8


so we have to change uiaction sheet to uialertcontroller


<example at UIViewController>

let alertController = UIAlertController(title: "등록된 혈당측정기를 삭제하시겠습니까?".localized, message: "", preferredStyle: .alert)

        let confirmAction = UIAlertAction(title: "확인".localized, style: .default, handler: { (action) -> Void in

            //do something

        })

        let cancelAction = UIAlertAction(title: "취소".localized, style: .cancel, handler: { (action) -> Void in

            //self.tableView.setEditing(false, animated: true)

        })

        alertController.addAction(confirmAction)

        alertController.addAction(cancelAction)

        self.present(alertController, animated: true, completion: { () -> Void in

            //do something

        })


//handle event selections

func selecttypeitem(action : UIAlertAction){

        var buttonIndex:Int = 0

        for title in self.termTitles {

            if(action.title == title)

            {

                break

            }

            buttonIndex = buttonIndex + 1

        }

}


<example at UIView>

 self.present to use like below

UIApplication.shared.keyWindow?.rootViewController?.present(alert, animated: false, completion: nil)


* we cant use sender.tag

* we can use only one action type cancel! if you add multiple cancel action, it will occur exception!

by 무위자연 2017.12.04 11:43



NSUserDefaults  - c#의 Setting에 가까운 것
키를 이용해서 저장
NSString *valueToSave = @"someValue";
[[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:@"preferenceName"];
[[NSUserDefaults standardUserDefaults] synchronize];
저장된 값을 확인.
NSString *savedValue = [[NSUserDefaults standardUserDefaults]
  stringForKey:@"preferenceName"];


by 무위자연 2017.05.19 15:51


timezone / utc string to NSDate

ex 2017-05-15T18:49:00+0900"
dateformat은 yyyy-MM-dd'T'HH:mm:ssxxxx
xxxx가 핵심 swift와 공통


by 무위자연 2017.05.19 15:50
| 1 |