나는 int의 2D 배열을 게임의 맵 형식으로 사용하고 있습니다. 지도의 가로 길이는 변경되지 않지만 세로 길이는 변경할 수 있습니다. 이 때문에 실제 데이터 저장을 위해 C 배열의 효율성을 사용해야하며 컨테이너에 NSMutableArray를 사용해야합니다. 그러나, 나는 이것에 대해 어떻게 가야할지 모르겠다. NSArray에 C 배열을 저장할 수도 있습니까? 나는 다양한 방법을 시도했지만 아무도 작동하지 않는 것 같습니다.NSArray에 C 배열의 int를 추가 할 수 있습니까?
답변
NSArray는 개체 만 저장합니다. int 배열을 데이터 저장소로 사용하는 사용자 정의 NSArray 하위 클래스를 정의하고 int를 저장하고 NSArray의 일반 개체 인터페이스 (즉, int를 NSNumbers로 변환)로 변환하는 특수 메서드를 정의 할 수 있습니다. way overly 대부분의 경우 복잡합니다. 하지만 일반 NSArray를 사용하면 객체가 달라 붙어 있습니다.
척의 대답은 정확하지만 아마도 역시 나쁜 생각 일 것입니다. 커스텀 NSArray 서브 클래스를 사용하고 boxing/unboxing의 오버 헤드를 수행하는 것보다 C 배열을 저장하는 훨씬 간단한 방법이 있습니다. –
그냥 분명히하기 위해, 나는 이것이 당신이하고 싶은 것이 보통 아니란 @ 케빈 발라드에 동의한다. 나는 네가 할 수있는 몇 가지 경우를 생각할 수 있지만 일반적으로는 그렇지 않다. 이것이 어레이를 움직이게하는 다소 복잡한 해결책이라고 생각했지만, 답을 더 명확하게 편집 할 것입니다. – Chuck
아니요, 객체는 NSArray
에만 저장할 수 있습니다. NSMutableData
거기에 C 배열을 백업하는 바이트를 저장하려고 시도 할 수 있지만 약간 어색합니다.
vector과 같은 일부 C++ STL 컨테이너를 사용할 수 있습니다. 이는 필요에 따라 어레이를 확장/축소하기위한 인터페이스뿐만 아니라 성능이 뛰어납니다.
- 1. IBActions를 NSArray에 추가 할 수 있습니까?
- 2. 문자열 변환에이 int를 어떻게 할 수 있습니까?
- 3. 파일에서 NSarray에 정수를 추가 할 때
- 4. NSArray에 문자열 요소 추가
- 5. NSArray에 요소 추가
- 6. NSArray에 범주 추가
- 7. 배열의 int를 비교하는 중첩 루프
- 8. StreamReader 소켓 C#에서 int를 수신 할 수 있습니까?
- 9. 배열의 객체는 할 수 있습니까?
- 10. blockoppertion (AFNetwork)에서 배열의 객체에 속성을 추가 할 수 있습니까?
- 11. nsarray에 개체를 추가 할 때 메모리 누수가 발생했습니다.
- 12. NSArray에 객체 추가하기
- 13. 어떤 종류의 데이터가 "enum"유형 상수에 있습니까? 어떻게 그것을 NSArray에 추가 할 수 있습니까?
- 14. 개체를 C# 감시자에 추가 할 수 있습니까?
- 15. C++ int array - int를 제거하고 배열의 나머지 부분을 이동합니다.
- 16. int를 짧게 추가
- 17. 연산자를 클래스에 추가 할 수 있습니까?
- 18. INT를 다른 INT와 어떻게 비교할 수 있습니까?
- 19. Obj-C, NSMutableArray를 다른 NSMutableArray에 어떻게 추가 할 수 있습니까?
- 20. PHP 배열의 해시를 할 수 있습니까?
- 21. NSMutableArray를 파일에 추가 할 수 있습니까?
- 22. C enum이 생성되면 C enum에 값을 추가 할 수 있습니까?
- 23. (C++) GUI없이 C++ 프로그램에 직접 링크를 추가 할 수 있습니까?
- 24. CGPoints의 NSArray에 NSPredicate
- 25. iPhone - UIButton에 int를 입력 할 수 없습니다.
- 26. 컬렉션에서 int를 정수로 변환 할 때가 있습니까?
- 27. 스칼라 : 왜 Int를 유닛으로 변환 할 수 있습니까?
- 28. String 변수에 int를 어떻게 할당 할 수 있습니까?
- 29. 이 int를 상수로 어떻게 초기화 할 수 있습니까?
- 30. In Kotlin Int를 어떻게 변환 할 수 있습니까? Int로
배열의 최대 길이가 있어야하나요? 내가 생각하기에 왜 C 어레이를 그대로 사용하지 않는가? – andershqst