전체 글

전체 글

    [MYSQL] 가격이 가장 비싼 식품의 정보 출력하기 ORDER BY, DESC, LIMIT

    FOOD_PRODUCT 테이블 FOOD_PRODUCT 테이블은 다음과 같으며 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 의미합니다. 가격이 가장 비싼 식품의 정보를 출력하세요. SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE FROM FOOD_PRODUCT ORDER BY PRICE DESC LIMIT 1; asc(default) = 오름차순 정렬 desc = 역순 정렬

    [MYSQL] 상위 n개 레코드문제

    테이블 명 ANIMAL_INS 속성 ANIMAL_ID NAME ANIMAL_TYPE DATET IMEINTAKE_CONDITION SEX_UPON_INTAKE 동물 보호소에 가장 먼저 들어온 동물의 이름을 가져오는 SQL문을 작성하라 SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1;

    IOS - Xcode 오류 Application tried to present modally a view controller on itself

    Application tried to present modally a view controller on itself 뷰 컨트롤러를 인스턴스화하고 present하는 과정에서 바보같이 실수 guard let storyboard = self.storyboard?.instantiateViewController(withIdentifier: "stoyboard) as" storyboard else { return } storyboard.modalPresentationStyle = .fullScreen storyboard.present(storyboard, animated: true) 문제는 3번째 라인 storyboard.present(storyboard, animated: true) // 이라인을 아래처럼 수정 ..

    IOS - Xcode 오류 Could not insert new outlet connection: Could not find any information for the class named

    Could not insert new outlet connection: Could not find any information for the class named 무슨에러? 새로운 뷰를 생성하고 클래스 이름을 정확히 입력했으나 발생하는 에러. Xcode의 버그라고.. 해결방법? 방법 1. 해당 클래스에 @IBOutlet을 코드로 선언하고 연결하면 이후에 연결하는 컴포넌트들은 잘 연결됨. 방법 2. Xcode 재시작 방법 3. cmd + shift + k 로 클린빌드

    IOS - Xcode 오류 this class is not key value coding-compliant for the key profileButton.

    IBOutlet문제 @IBOutlet으로 연결해놨으나 삭제/주석 처리한경우 발생 오류가 발생한 Outlet이 위치한 뷰로 이동해서 사용하지않는 Outlet의 연결을 끊어주면 해결

    Firebase(IOS) - 데이터 읽기 동기 처리.

    파이어 베이스의 데이터를 읽는 코드는 비동기 방식으로 처리된다. 만약 파이어베이스에서 데이터를 읽는 코드를 작성하고 바로 프린트를 해보면 값은 변경되지 않고 그대로 출력될것이다. 이런식으로 var a = 1 readfirebase() // a가 2로 변경되어야함 print(a) 출력은 1 2로 변경되어야 하는 a는 1로 출력된다. 파이어베이스의 데이터를 받아오는 코드는 비동기적으로 처리되기 때문에 데이터를 읽어온 후 2로 변경되는데 읽어 오기도 전에 프린트를 해버려서 출력이 1이 나온다. 버튼을 만들어서 출력해보면 2로 정상 출력된다. 이렇기 때문에 데이터를 읽어온 직후 그 데이터를 사용해야 한다면 원하지 않는 결과를 얻게된다. 동기처리 하는 방법 데이터 읽는 함수를 호출하는 부분 //데이터 읽기 함수를..

    Firebase(IOS) - Realtime Database데이터 읽기

    파이어베이스 실시간 데이터베이스에서 데이터를 읽어오는 방법 예제로 둘 파이어베이스의 데이터 일단 FirebaseDatabase를 import 해둔다. 1je36JAenW...뭐시기는 uid라는 변수로 대체한다. 데이터를 읽을 땐 reference객체가 필요하다. reference객체를 생성한다. //레퍼런스 객체 생성 let ref = Database.database().reference() 만약 User의 uid아래의 정보를 읽어오고 싶다면 이런 코드를 작성한다. ref.child("User").child(uid).observe(.value){snapshot in //데이터 처리 코드 작성 } ref의 헤더에서 child(User)의 child(uid)의 value값들을 snapshot으로 observ..

    IOS - ViewController의 생명주기(Life Cycle)

    ViewController의 생명주기(Life Cycle) IOS에서 화면을 구성하는 요소인 ViewController가 나타나서 사라지기까지의 주기를 의미한다. 그림을 보면 will과 did가 반복적으로 사용된다 will은 ~할 것이다. 라는 뜻을 가지며 did는 ~했다. 라는 의미를 가진다. 이 주기들의 순서는 다음과 같다. ->loadView(뷰 로드) -> viewDidLoad(뷰가 로드되었다) -> viewWillAppear(뷰가 나타날 것이다) -> viewDidAppear(뷰가 나타났다) -> viewWillDisappear(뷰가 사라질 것이다) -> ViewDidDisappear(뷰가 사라졌다) -> viewDidUnload(뷰가 언로드 되었다) 1. override func loadVie..

    IOS - Navigation Bar Title 변경하는 방법

    1. Navigation Controller에 embed 했을 때 //1 title = " " //2 self.title = "" //3 self.navigationItem.title = "" //4 self.navigationController?navigationbar.topItem.title = " " 2. Navigation Controller와 Tab Bar Controller가 함께 1. self.navigationItem.title= " " 2. self.navigationController?.navigationBar.topItem?.title = " " 3. Navigation Bar만 추가했을때 (Navigation Controller로 생성된 bar가 아닐경우) //Outlet변수로 추가..

    IOS - PickerView

    피커뷰를 사용하려면 컬럼의 갯수에 상관없이 UIPickerViewDataSource, UIPickerViewDelegate라는 프로토콜을 채택해야함. 먼저 UIPickerViewDataSource를 채택한 뷰 컨트롤러는 자기 자신을 피커뷰의 datasource로 등록해야한다. 뷰 컨트롤러가 피커뷰에 표시할 데이터와 UIPickerView사이의 다리 역할을 한다. //피커뷰의 열 개수를 넘김 func numberOfComponents(in pickerView: UIPickerView) -> Int { return pickerViewCnt } //피커의 항목 개수를 넘김 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component..