본문 바로가기
300x250

iOS119

Push Notification 앱이 실행상태가 아니다 (push 수신으로 앱 실행) 실행 중에 push 수신 백그라운드 상태에서 push 수신 UIApplicationStateActive: 앱 실행 중 UIApplicationStateInactive: 앱이 실행 중이지만 이벤트가 없는 상태(중단 중이거나 백그라운드로 전환 중) UIApplicationStateBackground: 앱이 백그라운드에 있음 [[[UIApplication sharedApplication] currentUserNotificationSettings] types] != UIUserNotificationTypeNone // 결과가 true.. 2021. 12. 6.
네트워크 통신 주의점 a 테이블뷰가 있고 셀의 상세 화면이 있다 셀을 클릭하면 상세화면으로 넘어간다 상세화면의 데이터는 테이블뷰가 있는 컨트롤러에서 넘겨준다 이 데이터를 상세화면에 뿌려줄때 깔끔하게 바로 보여주려면 (빈값이나 완전히 로드되지 않은 화면이 보이지 않도록) 테이블뷰가 있는 컨트롤러에서 상세화면에 필요한 네트워크 통신을 미리 해주어야 한다. 단, 통신 전과 데이터가 달라질 가능성이 있다면 이러한 설계는 조심할것 2021. 12. 3.
_myView vs. self.myView 참고자료의 내용 일부를 정리함 self.myView는 myView라는 프로퍼티 값을 읽어온다. (=setter/getter) 변수에 접근하는 것이 아닌 변수에 대한 값을 가져오는 것 _myView는 예전 @synthesize 사용시 `@synthesize myView = _myView`라고 사용했던것 처럼 단순히 변수의 별칭으로 사용된다고 보면 된다. 즉, self.myView는 _myView라는 변수를 사용하는 것이고, self.myView를 통해 _myView에 값을 넣는 것 결론적으로 self.myView = _myView 단, ARC 미적용 프로젝트는 예외 참고>> https://wingsnote.com/31 https://stackoverflow.com/questions/10333495/diff.. 2021. 11. 17.
arrow notation (`->`) 참고 사이트에서 필요한 부분 번역한 내용입니다. Objective-C 에서는 어떤 class 또는 struct의 프로퍼티에 값을 대입할 때 self.담길 곳 = 넣을 값 의 형식을 사용할 때 주의 오류로 self. 대신 self -> 를 사용하게끔 fix 해준다. "."의 사용은 항상 실제 메서드 호출을 수행한다. 속성이 "retain" 또는 "copy" 속성인 경우, getter / setter를 사용하면 올바른 메모리 관리를 수행할 수 있지만, 인스턴스 변수에 직접 액세스할 경우 MRC(수동 참조 카운트)에서 메모리 관리를 직접 처리해야 한다. 요약하자면, "."는 Objective-C에서 두 가지 용도로 사용된다. 왼쪽에 struct 타입이 있는 경우 struct의 필드에 액세스합니다. 왼쪽에 객체.. 2021. 11. 16.
isEqual vs. == NSArray, NSDictionary, NSString과 같은 컨테이너 클래스들은 동일성을 비교할 때 조금 다르다. NSString * str1 = @"안녕"; NSString * str2 = @"안녕"; if (str1 == str2) { // retrun YES } if (str1 isEqual:str2) { // retrun YES } 같은 "안녕"을 참조하고 있기 때문에 모두 return YES이다. (== 와 isEqual이 같은 결과를 리턴하는 이유 : https://ggool.tistory.com/72) 그러나 NSString * str1 = @"안녕"; NSString * str2 = [NSString stringWithFormat:@"%@",@"안녕"]; if (str1 == str2).. 2021. 11. 11.
Text 설정 UILabel * noSearchResultLB = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 100)]; [noSearchResultLB setText:@"안녕하세요."]; [noSearchResultLB setFont:[UIFont fontWithName:@"NotoSansOriya" size:20]]; [noSearchResultLB setTextColor:[UIColor colorWithRed:(176/255.0f) green:(190/255.0f) blue:(197/255.0f) alpha:1]]; 2021. 11. 5.
UIPickerView - 항목 설정 pickerview 항목 2개 이상 만들기 let a = ["1","2","3","4","5"] let b = ["일","이","삼","사","오"] func numberOfComponents(in pickerView: UIPickerView) -> Int { return 2 // 행 개수 } func pickerView(\_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { // 열 번호에 따른 열 개수 설정 if component \== 0 { return a.count } return b.count } // 각 항목에 표시될 내용 설정 func pickerView(_ pickerView: UIPickerView, t.. 2021. 10. 29.
네트워크 통신 - inof.plist 설정 info.plist에 'App Transport Security Settings' 추가 키벨류로 'Allow Arbitrary Loads' yes 추가 2021. 10. 26.
스토리보드 없이 코드로 뷰 구현하기 1.스토리보드 파일을 삭제 2.SceneDelegate파일에서 scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) 함수에 윈도우 설정을 위한 코드를 작성 // 뷰를 스토리보드 없이 만들 때 준비 // 윈도우를 새롭게 초기화 하는 과정 guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(windowScene: windowScene) window?.backgroundColor = .systemBackground window?.rootViewControlle.. 2021. 10. 26.
300x250