티스토리 뷰
추가 데이터를 계속해서 받는 배열을 property로 선언 후 객체를 추가 할 경우 오류 발생.
ㅁ. 에러 형태
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'
*** First throw call stack:
ㅁ. 소스 코드
// 테이블뷰에 사용할 배열 선언
@property (nonatomic, strong) NSMutableArray *listDataAry;
// 초기화
self.listDataAry = [[NSMutableArray alloc] init];
// 배열에 초기 데이터 셋팅.
self.listDataAry = [dictionary objectForKey:@"list"];
// 배열 정보 추가.
[self.listDataAry addObjectsFromArray:[dictionary objectForKey:@"list"]];
ㅁ. 문재 해결
// 테이블뷰에 사용할 배열 선언
@property (nonatomic, strong) NSMutableArray *listDataAry;
// 배열에 초기 데이터 셋팅시 NSMutableArray 객체로 한번 더 감싸 할당.
self.listDataAry = [NSMutableArray arrayWithArray:[dictionary objectForKey:@"list"]];
// 배열 정보 추가.
[self.listDataAry addObjectsFromArray:[dictionary objectForKey:@"list"]];
ㅁ. 마무리
property선언 후 alloc할 경우 메모리에 공간이 할당되어 문제 없을 것이라 생각했는데,
property 선언 하였을 경우 초기 메모리 할당을 위해 초기화가 필요했다.
또한 객체를 alloc init을 할 필요가 없었다.
property를 하지 않을 경우에는 필요하겠지만 말이다.
'iOS > 에라고만...' 카테고리의 다른 글
[iPhone] developer codesign failed error!! /개발자 인증서 빌드 시 에러/ (0) | 2016.07.28 |
---|---|
[iOS]iOS9, xCode 7.1/ App Transport Security has blocked a cleartext HTTP (0) | 2015.11.09 |
[iOS]해당 객체의 frame, center 값이 적용되지 않을 때. (0) | 2015.08.16 |
[ios]APNS 관련 NSCocoaErrorDomain Code=3000 에러 (0) | 2015.03.09 |
[ios] app store review 20.2, 3.1 reject (0) | 2015.02.11 |