[ActionScript] Array의 원소 추가/삭제

배열의 탈을 쓴 액션스크립트의 Array에 원소를 추가하고  삭제하는 매서드가 바로 splice라는 녀석인데.. 이 놈의 성질을 보다 명확히 파악하고 작업을 진행해야겠기에.. 정리를 해봅니다.

배열의 탈을 썼다는 의미는.. 아무리 봐도 이 Array는 배열이라고 하기 어려운 놈이라고 생각되기 때문입니다. 이 부분에 대해서는 다음 기회에 더 논하기로 하고… 이 Array에 원소를 중간에 추가하거나 중간의 원소를 삭제하는 매서드가 바로 splice입니다.

이 Array의 splice를 이용해 이떤 기능을 개발하고 있는데… 뭔가 작동이 제대로 의도하는 바대로 되지 않습니다.. Array에 대한 기본이 부족한 탓이기에 이 Array의 splice에 대해 살펴봅니다. 먼저 Array 타입의 변수에 다음과 같은 원소들이 담겨져 있다고 해 보겠습니다.

사용자 삽입 이미지
즉, 총 6개의 원소로 구성되어져 있으며 첫번째 원소는 배열 인덱스 0부터입니다. 이 초기 상태에서 다음과 같은 매서드를 호출하면…

v.splice(0, 0, 'a');

결과는 다음과 같습니다..

사용자 삽입 이미지
즉, 첫번째 자리에 a 값을 추가할 수 있습니다. 그리고 다시 초기 상태로 돌아가서… 다시 다음 코드를 호출하면..

v.splice(99, 0, 'a');

결과는 다음과 같습니다.

사용자 삽입 이미지
99번째 인자는 너무 커서 존재하지 않는 인자임에도 불구하고 인자하게도.. 가장 마지막에 a 값을 추가해 줍니다.. 그리도 또 다시 초기 상태로 돌아가서.. 다음 코드를 호출하면..

v.splice(2, 0, 'a');

결과는 다음과 같습니다.

사용자 삽입 이미지
2번째 인덱스 바로 앞에서 a 값이 추가됩니다..

이제.. 다시 초기 상태로 돌아가서 원소를 삭제하는 다음 코드를 실행해보면..

v.splice(2, 1);

결과는 다음과 같습니다..

사용자 삽입 이미지
정확히 지정한 2번 인덱스를 제거합니다.. 인덱스가 옳바르지 않을 경우 어떠한 에러도 발생하지 않고 원소들을 변경시키지 않습니다..

이제 정리가 끝났으니… 다시 코딩단으로……

[안드로이드] 이런…. 무책임한 개발환경 같으니…

하루를 정리하고… 퇴근 직전.. 잠시 안드로이드를 공부하던 차에.. 문제가 발생했습니다.. 물론.. 모든 문제의 책임은 개발자에게 있지만… 어느 정도.. 힌트를 줘야 문제를 잡지… Error Log에 달랑 아래와 같은 에러 로그만 찍어주고.. 어디 소스 파일에 문제인지 알려주지 않으니.. 도통 나같은 안드로이드 입문자에게.. 에러 잡기는 서울서 김서방 찾기로군…

사용자 삽입 이미지

이래.. 저래.. 소스 코드며.. xml  파일이며 하나 하나, 한줄 한줄 다 뒤진 끝에.. xml에 문제가 있다는 것을 알았습니다.. 그 xml은 레이아웃을 정의하는 것이고… 다음과 같습니다..

...

; 
  
;

...

보니.. Button인데.. Buttom이죠.. 프로젝트가 방대해지고.. 정신없이 개발하고 있다면.. 어떤 힌트가 제공하지 않는… 이런 성의없는 에러로그로는 정말 당혹스러워질법도 한데요..

이런 상황을 대비해서.. 다시금 에러로그를 살펴봅니다.. org.eclipse.jdt.ui에 Internal Error는.. ui를.. 즉, 레이아웃을 정의하는 기능 내부의 에러라는 의미이고… 그 하단에 딸린 추가 로그 정보인 gen [in tstAndroid] does not exist는.. 무언가 존재하지 않는다는 의미라고 생각할 수 있겠는데요.. 바로 실수로 입력한 Buttom에 대한 ui가 존재하지 않는다는 생각할 수 있겠습니다..

이런 경우에는….. 레이아웃을 정의하는 xml에 태그명이 잘못되었으니.. 이곳에서서 문제를 찾아볼것! 이라고 정리해봅니다.. 아이코…… 벌써.. 11시가 넘었습니다.. 퇴근해야죠…… 내일을 위해서…