Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- IOS
- iOS16
- Code
- mac
- Session
- appstore
- JPA
- error
- Notification
- window
- darkmode
- Firebase
- MacOS
- Swift
- view
- FLUTTER
- Xcode
- UIButton
- Archive
- Git
- 한글
- stack
- github
- Python
- Realm
- 웹뷰
- rxswift
- Apple
- 개발자
- SwiftUI
Archives
- Today
- Total
EEYatHo 앱 깎는 이야기
Swift ) NSMutableDictionary vs NSDictionary - EEYatHo iOS 본문
반응형
차이점
NSMutableDictionary 수정, 삭제, 삽입 가능.
NSDictionary 수정, 삭제, 삽입 불가능.
그런데 막상 코드를 보면, NSDictionary 에
.setValue(<value: Any?>, forKey: <String>) 함수가 존재한다.
그래서 실제로 해보았는데, 오류가 발생한다.
실행 코드.
let d: NSDictionary = NSDictionary(object: "object", forKey: "key" as NSCopying)
d.setValue("value", forKey: "key2")
오류.
Thread 1: "[<__NSSingleEntryDictionaryI 0x282f2b660> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key key2."
반면, NSMutableDictionary 는 setValue 잘된다.
실행 코드.
let md: NSMutableDictionary = NSMutableDictionary(object: "object", forKey: "key" as NSCopying)
md.setValue("value", forKey: "key2")
잘됨.ㅎ
NSDictionary to NSMutableDictionary
let d: NSDictionary = NSDictionary(object: "object", forKey: "key" as NSCopying)
let md: NSMutableDictionary = d.mutableCopy() as! NSMutableDictionary
NSArray도 마찬가지
NSMutableArray이 수정 가능.
NSArray는 수정 불가.
사내 프로젝트에서
didFinishLaunchingWithOptions 의 launchOptions 에서
값 추출할 때 쓰고 있어서, 한번 정리했슴당~
'iOS, Swift' 카테고리의 다른 글
Swift ) 부모자식 뷰컨은 왜쓰는가 - EEYatHo iOS (0) | 2021.08.24 |
---|---|
iOS ) CPU아키텍처, arm, Xcode12 빌드오류 정리 - EEYatHo iOS (0) | 2021.08.17 |
Swift ) AirBridge - EEYatHo iOS (0) | 2021.08.09 |
Swift ) 앱 실행방법에 따른 분기 - EEYatHo iOS (0) | 2021.08.09 |
Swift ) defer - EEYatHo iOS (0) | 2021.07.21 |
Comments