일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- xcode로 날씨앱 만들기
- dispatchsource
- UIAlertAction
- WeatherManager
- CLLocationManagerDelegate
- 영문 개인정보처리방침
- Startign Assignments
- SwiftUI Boolean 값
- swift
- 러닝기록앱
- 단일 책임원칙
- Xcode
- Protocol
- Timer
- font book
- CoreLocation
- MKMapViewDelegate
- MKMapItem
- 서체관리자
- App Store Connect
- 한국어 개인정보처리방침
- RunningTimer
- 러닝타이머
- UICollectionViewFlowLayout
- Required Reason API
- AnyObject
- addannotation
- weak var
- weatherKit
- 클로저의 캡슐화
- Today
- Total
VesselWheel
Collection : Array, List 본문
import UIKit
/*
Collection : Array(배열), List
Dictionary,
Set
Array(배열) - 같은 type 의 data 를 여러 개 저장함
index 가 있음 (순서가 있음)
Int 배열, String 배열, 구조체 배열,
클래스(객체) 배열
List - cf. ArrayList (in Java)
ㄴ 배열(Array)과 비슷하나,
서로 다른 type 의 data 를 여러 개 저장할 수 있음
*/
var arr1: Array<Int> = Array<Int>()
var arr2: Array<Int> = [] // <-- 많이 사용함
var arr3: [Int] = [] // <-- 많이 사용하는 편
// 타입 추정
var arr4 = Array<Int>()
var arr5 = [Int]()
var arr6: [Int] = []
arr6.append(11)
arr6.append(12)
arr6.append(13)
print("arr6 : \(arr6)")
dump(arr6)
// Array(배열) 에 저장된 값 확인하기 : contains()
print(arr6.contains(22))
print(arr6.contains(12))
// 배열의 크기(길이) - 저장하고 있는 elements 의 개수
print("arr6.count : \(arr6.count)")
// 배열의 element(요소) 삭제하기 : remove(at:index)
arr6.remove(at: 0)
print(arr6)
print("arr6.count : \(arr6.count)")
// 배열의 마지막 요소 삭제하기
arr6.removeLast()
print(arr6)
print("arr6.count : \(arr6.count)")
arr6.append(14)
arr6.append(15)
arr6.append(16)
print(arr6)
print("arr6.count : \(arr6.count)")
// 모든 요소를 한꺼번에 삭제하기 : removeAll()
arr6.removeAll()
print(arr6)
print("arr6.count : \(arr6.count)")
arr6.append(11)
arr6.append(12)
arr6.append(13)
print(arr6)
print("arr6.count : \(arr6.count)")
// 배열 중간에 요소 추가하기 : insert(value, at: index)
arr6.insert(14, at: 1)
print(arr6)
print("arr6.count : \(arr6.count)")
arr6.insert(15, at: 3)
print(arr6)
print("arr6.count : \(arr6.count)")
arr6.append(16)
print(arr6)
print("arr6.count : \(arr6.count)")
// 배열이 비어있는지 알아보기 : isEmpty 속성
print(arr6.isEmpty)
arr6.removeAll()
print(arr6.isEmpty)
arr6.append(11)
arr6.append(12)
arr6.append(13)
arr6.append(14)
arr6.append(15)
arr6.append(16)
// 배열 (순환 : 순회) 출력
for number in arr6{
print(number)
}
/*
hobbies 라는 문자열 type 배열 생성하기
"독서","영화감상,"등산","축구" 를 추가하기
배열의 크기 출력하기
모든 요소 출력하기 (for 문)
"등산" 만 출력하기
"야구" 가 있는지 알아보기
*/
var hobbies: [String] = []
hobbies.append("독서")
hobbies.append("영화감상")
hobbies.append("등산")
hobbies.append("축구")
print(hobbies)
print(hobbies.count)
for hobby in hobbies{
print(hobby)
}
// [] 를 사용해서 index 번호를 지정하면 해당 요소를 참조함
print(hobbies[2])
print(hobbies.contains("야구"))
/*
옵셔널 바인딩으로 index 가져오기
*/
if let index = hobbies.firstIndex(of: "독서"){
print("독서의 index : \(index)")
}
/*
배열 관련 자료형
NS 계열 : NSArray(읽기만 가능),
NSMutableArray(읽기, 쓰기 모두 가능)
Swift 계열 : Array(var, let)
*/
// NSArray -> Array(Swift Array) 로 변환하기
var NSArray1 = NSArray(objects: "a", "b", "c", "d")
print(NSArray1)
// NSArray -> NSMutableArray
var mutableArray1 = NSMutableArray(array: NSArray1)
// NSMutableArray -> Array(Swift Array) 로 변환하기
if let switfArray = mutableArray1 as NSArray as? Array<String>{
print(switfArray)
}
// as 형변환
// as? 옵셔널 형변환 : nil 이 아닌 경우에만 변환해서 오류가
// 발생하지 않도록 함
// nill 이면 변환하지 않음
/*
Swift Array --> NSMutableArray
*/
var swiftArray2: [String] = ["a","b","c"]
var mutableArray2 = NSMutableArray(array: swiftArray2)
/*
Swift Array --> NSArray
*/
var swiftArray3: [String] = ["a","b","c"]
var NSArray3 = NSArray(array: swiftArray3)
/*
배열의 element 들이 같은지 알아보기
*/
let arr7 = [1, 2, 3, 4, 5]
let arr8 = [1, 2, 3, 4, 5]
if arr7 == arr8{
print("element 들이 같음")
}else{
print("element 들이 다름")
}
/*
배열의 element 를 다른 값으로 치환하기
*/
var arr9 = ["A","B","C","D"]
print(arr9)
arr9.replaceSubrange(0..<2, with: ["E", "F"])
print(arr9)
/*
배열의 정렬 : 오름차순
*/
var arr10 = ["자", "가", "라", "바"]
print(arr10)
let sortedArr1 = arr10.sorted()
print(sortedArr1)
/*
배열의 정렬 : 내림차순
*/
var arr11 = ["자", "가", "라", "바"]
print(arr11)
let descendingSortedArr = Array(arr11.sorted().reversed())
print(descendingSortedArr)
/*
범위를 지정해서 element 추출하기
sortedArr1 : ["가", "라", "바", "자"]
*/
let rangedArr1 = sortedArr1[0...1]
let rangedArr2 = sortedArr1[0...2]
let rangedArr3 = sortedArr1[0...3]
print(rangedArr1)
print(rangedArr2)
print(rangedArr3)
/*
구조체(클래스) 의 객체로 된 배열
*/
struct Student{
var name = "더조은"
var stdno = 111111
}
class Professor{
var profname = "이순신"
var profno = 111
}
struct Struct1{
var name = "더조은"
var age = 21
func func1(){
print("func1()")
}
}
// [Int], [String], [Student], [Professor], [Struct1]
// student1 배열의 요소 하나에는 Student 구조체에 있는
// 변수 name, stdno 가 같이 들어감
var studentArr1: [Student] = []
var student1 = Student()
var student2 = Student()
var student3 = Student()
studentArr1.append(student1)
studentArr1.append(student2)
studentArr1.append(student3)
print("studentArr1 : \n\(studentArr1)")
// professor1 배열의 요소 하나에는 Student 구조체에 있는
// 변수 profname, profno 가 같이 들어감
var professorArr1: [Professor] = []
var professor1 = Professor()
var professor2 = Professor()
var professor3 = Professor()
print("professorArr1 : \n\(professorArr1)")
// struct1 배열의 요소 하나에는 Struct1 구조체에 있는
// 변수 name, age 가 같이 들어감
var structArr1: [Struct1] = []
var struct1 = Struct1()
var struct2 = Struct1()
struct2.name = "더조은2"
struct2.age = 22
var struct3 = Struct1()
struct3.name = "더조은3"
struct3.age = 33
var struct4 = Struct1()
struct4.name = "더조은4"
struct4.age = 44
var struct5 = Struct1()
struct5.name = "더조은5"
struct5.age = 55
structArr1.append(struct1)
structArr1.append(struct2)
structArr1.append(struct3)
structArr1.append(struct4)
structArr1.append(struct5)
print("structArr1 : \n\(structArr1)")
for element1 in structArr1{
print(element1.name)
print(element1.age)
element1.func1()
}
'Xcode Study' 카테고리의 다른 글
클로져의 변형 (0) | 2023.10.19 |
---|---|
클로저(Closure): Code Block (0) | 2023.10.19 |
Xcode 자동 들여쓰기 //Re-Intent(Ctl + i or cmd ][ ) (0) | 2023.10.19 |
cocoa pods 사용법과 터미널 내용 (1) | 2023.10.18 |
NavigationView with section in Form{} (0) | 2023.10.18 |