본문 바로가기

전체 글

(139)
Swift 정리 : method overloading : 생성자 중첩 매개변수의 개수와 자료형이 다른 같은 이름의 함수를 여러 개 정의 매개변수가 다른 두 생성자를 통해 두가지 방법으로 인스턴스를 만들 수 있음 class Man{ var age : Int = 1 var weight : Double = 3.5 func display(){ print("나이=\(age), 몸무게=\(weight)") } func display(age : Int){ //생성자 중첩 print("나이=\(age), 몸무게=\(weight)") } init(age: Int, weight : Double){ //1 self.age = age self.weight = weight } init(age: Int){ //생성자 중첩 self.age = age } } var kim : Man = Man(age..
Swift 정리 : computed property의 setter setter가 있으면 get{ }는 생략할 수 없음 매개변수명은 newValue가 기본, 이 경우 생략 가능 newValue가 아니라면 변수명을 써주어야 함 class Man{ var age : Int = 1 // stored property var weight : Double = 3.5 // stored property var manAge : Int{ //메서드 같지만 computed property get{ return age-1 } set(newValue){ //(newValue) 생략 가능 age = newValue + 1 } } func display(){ print("나이=\(age), 몸무게=\(weight)") } init(age: Int, weight : Double){ self.age ..
Swift 정리 : stored property(저장 프로퍼티)와 computed property(계산 프로퍼티) computed property(계산 프로퍼티)는 property가 설정되거나 검색되는 시점에서 계산 또는 파생된 값이다. 계산 프로퍼티 내에는 값을 리턴하는 게터(getter) 메서드와 값을 대입하는 세터(setter) 메서드가 있다. class Man{ var age : Int = 1 // stored property var weight : Double = 3.5 // stored property var manAge : Int{ //메서드 같지만 computed property // get{ //getter만 있을 경우 생략 가능하다. return age-1 // } } func display(){ print("나이=\(age), 몸무게=\(weight)") } init(age: Int, weight..
Ep13 : Flask 인스타그램 클론코딩 - 게시글 저자 삭제 구현 우선 access token괴 refresh token을 받아 와서 로그인 한 유저만 게시글 생성이 가능하고, 저자 본인만 게시글 수정이 가능하도록 구현을 했다. 자세한 방법은 아래 블로그 링크를 통해서 진행 하였다. https://gdsanadev.com/15375 이제 작성자 본인만 삭제가 가능하도록 구현을 해 볼 것이다. 우선 게시글을 수정하는 부분에서 조금만 수정하면 될 거 같다고 생각했다. resources/post.py에서 게시글 수정 코드를 살펴보자 작성자만 게시글을 수정하도록 기능을 구현한 코드이다. 토큰을 사용하기 때문에 jwt가 필요하다는 장식자인 @jwt_required()를 작성해 주고, 게시글 생성할 때 클라이언트에서 보내준 JWT를 통해서 유저 이름을 알아 낸 다음 유저 이름을 ..
Swift 정리 : 인스턴스 초기화 init() / Self 클래스, 구조체, 열거형(enum) 인스턴스가 생성되는 시점에서 해야 할 초기화 작업 인스턴스가 만들어지면서 자동 호출됨 init 메서드(생성자) init() { } designated initializer - 모든 프로퍼티(age, weight)를 다 초기화시키는 생성자 init()을 하나라도 직접 만들면 기본적으로 만들어지는 눈에 안보이는 default initializer는 사라짐 소멸자 -인스턴스가 사라질 때 자동 호출 -deinit{} class Man{ var age : Int //init()이 있기 때문에 초기값 생략 가능 var weight : Double //init이 호출 되면서 값이 초기화됨 func display() { //인스턴스 메소드, 앞에 아무것도 붙지 않음 print("나이..
Swift 정리 : 클래스 메소드 타입 메서드 또는 클래스 메서드는 클래스 레벨에서 동작 타입 메서드는 인스턴스 메서드와 동일한 방법으로 선언하지만 class 나 static 키워드를 앞에 붙여서 선언 class키워드로 만든 클래스 메서드는 자식 클래스에서 override가능 함 class Man{ var age : Int = 23 //stored porperty var weight : Double = 95 func display() { //인스턴스 메소드, 앞에 아무것도 붙지 않음 print("나이=\(age), 몸무게=\(weight)") } class func cM(){ //클래스가 다루는 메소드는 func앞에 class나 static이 붙음 print("cM은 클래스 메서드입니다.") } static func scM(){ prin..
Swift 정리 : 프로퍼티(Property) 프로퍼티 초기값이 있거나 init을 이용해서 초기화하거나 옵셔널 변수(상수)로 선언(자동으로 nil로 초기화 property는 저장 프로퍼티(stored property)과 계산 프로퍼티(computed property) 두 가지가 있다 저장 프로퍼티는 초기값이 있어야함, 옵셔널 변수로 선언해도 됨 class Man{ var age : Int? //stored porperty var weight : Double = 3.5 } var x : Int
Swift 정리 : 클래스 클래스 만들기 클래스의 기본 구조는 다음과 같다. class 새로운 클래스 이름 : 부모 클래스 { // 프로퍼티 // 인스턴스 메서드 // 타입(type) 메서드(클래스 메서드) } “프로퍼티” 부분은 클래스 내에 포함되는 변수(var)와 상수(let)를 정의한다. “인스턴스 메서드”는 객체가 호출하는 메서드를 정의한다. “타입 메서드”는 클래스가 호출하는 메서드를 정의한다. class Man{ var age : Int = 23 //stored porperty var weight : Double = 95 func display() { //인스턴스 메소드 print("나이=\(age), 몸무게=\(weight)") } } var x : Int var lee : Man = Man() //클래스명 다음의 괄..