일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Protocol
- 한국어 개인정보처리방침
- RunningTimer
- 영문 개인정보처리방침
- 러닝기록앱
- App Store Connect
- weatherKit
- Xcode
- UICollectionViewFlowLayout
- MKMapViewDelegate
- AnyObject
- 클로저의 캡슐화
- CoreLocation
- xcode로 날씨앱 만들기
- dispatchsource
- 서체관리자
- weak var
- Required Reason API
- 단일 책임원칙
- 러닝타이머
- SwiftUI Boolean 값
- UIAlertAction
- font book
- WeatherManager
- swift
- Startign Assignments
- MKMapItem
- Timer
- CLLocationManagerDelegate
- addannotation
- Today
- Total
VesselWheel
Extension (확장 - (추가)) 본문
import UIKit
/* Extension (확장 - (추가))
처음 작성한 클래스의 내용(멤버변수(속성), 멤버메소드(기능))을 추가함
ㄴ 클래스, 구조체, 열거형, 기본자료형
overriding: 부모클래스에서 물려받은 메소드를 재정의함
overloading: 같은 클래스 안에서 같은 이름의 메소드의
매개변수부를 다르게 해서 구분함
extension: 다른 이름의 메소드를 추가하는 것
상속(inheritance: 확장) 추가(extension)
클래스에서만 가능함 클래스, 구조체, 열거형, 기본자료형 등에서 사용
overriding 이 가능 overriding 은 안 되고 새롭게 추가만 가능
*/
// 속성 추가
// isEven 과 isOdd 는 원래 Int type 에 없는데, 추가함
extension Int{
var isEven: Bool{
get{
return self % 2 == 0
}
}
var isOdd: Bool{
get{
return self % 2 == 1
}
}
}
var number1: Int = 11
print("number1.isEven :",number1.isEven)
var number2: Int = 10
print("number2.isEven :",number2.isEven)
number1 = 11
print("number1.isOdd :",number1.isOdd)
number2 = 10
print("number2.isOdd :",number2.isOdd)
print(15.isEven)
print(15.isOdd)
// 기능 추가 전
// Value of type 'Int' has no member 'multiply'
// 20.multiply(by: 2)
// 기능 추가 후
extension Int{
func multiply(by n: Int) -> Int{
return self * n
}
}
print("20.multiply(by: 2) :",20.multiply(by: 2))
'Xcode Study' 카테고리의 다른 글
assert / guard (0) | 2023.10.19 |
---|---|
Generic (0) | 2023.10.19 |
형변환 : Type Casting(2) (1) | 2023.10.19 |
형변환 : (data) type casting (1) | 2023.10.19 |
protocol (0) | 2023.10.19 |