목록전체 글 (58)
아무나 빌려가세요
PUSH알림을 통해 받은 데이터를 통해 페이지를 이동하는 방법을 적어본다. onesignal 홈페이지에서 구독된 유저에게 알림 테스트를 해볼 수 있다. New Push를 선택하면 알림을 보낼 수 있는 페이지가 나온다. 타이틀과 메시지를 적어준 후 구독된 전부에게 보내거나 내가 만든 집단에게 보낼 수 있다. 메시지 이외에 객체로 된 데이터를 보낼 수 있다. 이 데이터를 이용하여 알림클릭시 페이지가 이동하도록 설정한다. setNotificationOpenedHandler를 이용하여 어떤 데이터가 오는지 확인한다. custom: {"a":{"notice":"15"},"i":} //여기서 내가보낸 데이터를 추출할 수 있다. json파일을 객체로 변환후 switch문으로 분기를 나눈다. var custom = j..
M1 맥북에 Realm을 설치하면서 시행착오가 많아 정리하는겸 글을 써본다. 프로젝트에 cocoaPod를 설치한다. 1. pod init : pod 설치하기 2. open Podfile -a Xcode : xcode로 podfile 열기 3. realm 설치 ``` platform :ios, '12.0' target 'MyRealmProject' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for MyRealmProject pod 'RealmSwift', '~>10' end ``` 4. 터미널에서 pod install 하기 * M1에선 특별한 명령어가 필요하다. sudo arch -..

데이터를 저장하기위해 userDefaults 도 있지만 plist를 직접 생성해서 데이터를 관리하는 방법도 있다. 먼저 파일 디렉토리에 접근해서 plist를 생성한다. ``` let dataFilePath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.appendingPathComponent("Items.plist") ``` PropertyListEncoder를 선언하여 배열을 encode한다. 앞서 선언한 Path에 data를 넣는다. ``` let encoder = PropertyListEncoder() do{ let data = try encoder.encode(itemArray) //직렬화된 클래스(m..
웹에서 localStorage를 통해 간단한 정보를 저장했다면 swift에선 user Defaults를 통해 앱을 꺼도 데이터를 유지할 수 있는 기능이 있다. 먼저 userDefaults를 선언한다. let storage = UserDefaults.standard boolean,int등 원하는 값을 저장하고 label를 설정한다. storage.set(true,forkey:"boolean") storage.set(0.24,forkey:"Double") var array = [1,2,3] storage.set(array,forkey:"intArray") //배열도 저장이 가능하다. 타입을 선언하고 값을 출력한다. let value1 = storage.float(forkey:"Double") => 0.24 ..
json파일을 직렬화 해주는 사이트들이 많지만 배열로 묶여있는 형태는 제대로 안나오는 경우가 있다. 구글링을 한 끝에 방법을 찾았다. 방법은 직렬화된 클래스를 리스트로 선언하는 클래스를 하나 더 만들어야 한다. class List { List({required this.supports}); List list; //클래스를 타입으로 하는 리스트 변수를 생성한다. } fromJson을 설정할땐 json또한 List로 선언한다. factory List.fromJson(List json) { List jsonlist = []; jsonlist = json.map((i) => Support.fromJson(i)).toList(); return List(list: jsonlist); api를 받은 함수안에서 클래스..
구독된 유저의 고유Id를 추출하는 방법과 알림메세지 제목,내용을 받는방법을 써본다. 유저ID를 받는 방법은 두가지가 있다. getDeviceState 와 SubscribeObserver 함수를 사용한다. getDeviceState는 어떤 이유에선지 처음엔 무조건 null값을 출력하고 그다음부턴 userid를 출력한다. 처음부터 userId를 출력하려면 SubscribeObserver 를 사용해야 한다. OneSignal.shared .setSubscriptionObserver((OSSubscriptionStateChanges changes) async { print('permission change::::::::::::::::${changes.to.userId}'); //userID 출력 }); 알림메시..