IOS 개발 의 NSMutableArray 와 NSArray 의 차이

IOS 개발 의 NSMutableArray 와 NSArray 의 차이
우선,두 사람의 차 이 를 살 펴 보 자.

NSArray and its subclass NSMutableArray manage collections of objects called arrays.
 NSArray creates static arrays, and NSMutableArray creates dynamic arrays.
NSMutableArray 는 NSArray 의 하위 클래스 입 니 다.NSArray 는 정적 배열 을 만 들 고 NSMutableArray 는 동적 배열 입 니 다.다시 말 하면 NSArray 가 만들어 진 후 수정 할 수 없 으 며 NSMutableArray 는 수정 할 수 있 습 니 다.
ObjC 에서 함수 addObject 를 간단하게 보면 배열 의 요 소 는 id 형식,즉 지침 을 발견 할 수 있 습 니 다.

-
 (void)addObject:(id)anObject
이렇게 되면 배열 에 NSUInteger,BOOL 같은 비 지침 형 데 이 터 를 누 를 수 없 으 니 죽 을 지경 입 니 다.
그럼 이 내용 을 눌 러 야 되 는데 어 떡 하지?네,형식 변환,ObjC 는 NSNumber 를 제공 하여 여러분 에 게 변환 을 제공 합 니 다.NSNumber 자 체 는 포인터 형식 변수 입 니 다.

Inherits from NSValue : NSObject
간단 한 변환 예:

NSUInteger
 count = 1;

NSNumber
 *j = [NSNumber numberWithInt:count];

[ary
 addObject:j];

잘 알 겠 지?이 값 을 쓸 때 또 바 꿔 야 하 는데....................................................
어제 마침 배열 의 난 서 를 사용 하여 인터넷 에서 Sample 을 찾 아 수정 하 였 습 니 다.코드 는 다음 과 같 습 니 다.

#pragma
 mark -

#pragma
 mark (NSMutableArray *)randArray:(NSMutableArray *)ary

-
 (NSMutableArray *)randArray:(NSMutableArray *)ary{

  NSMutableArray
 *tmpAry = [NSMutableArray arrayWithArray:ary];

  NSUInteger
 count = [ary count];

  for

(NSUInteger i = 0; i < count; ++i) {

    int

nElements = count - i;

    //
 Seed the random number generator

    srandom(time(NULL));

    int

n = (random() % nElements) + i;

    [tmpAry
 exchangeObjectAtIndex:i withObjectAtIndex:n];

  }

  return

tmpAry;

}

궁금 한 점 이 있 으 시 면 메 시 지 를 남기 거나 본 사이트 의 커 뮤 니 티 에 가서 토론 을 교류 하 세 요.읽 어 주 셔 서 감사합니다. 도움 이 되 셨 으 면 좋 겠 습 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기