Foundaton 프레임 -->NSArray 배열

5690 단어

1. NSArray 기본 개념

  • NSArray 란 무엇입니까?
  • NSArray는 OC의 배열 클래스
  • 입니다.
  • NSArray 사용 주의 사항
  • 임의의 OC 대상만 저장할 수 있고 순서가 있다
  • OC가 아닌 대상을 저장할 수 없습니다. 예를 들어 int\bloat\double\char\enum\struct
  • 이것은 변할 수 없는 것이다. 일단 초기화가 끝난 후에 그 안의 내용은 영원히 고정되어 있다. 안의 요소를 삭제할 수도 없고 안에 요소를 추가할 수도 없다

  • 2. OC 그룹을 만드는 방법

  • 방법1:arrayWithObjects, 그룹의 nil은 끝부호
  • 방법2: 수조 약자
  •     NSArray *arr = [NSArray arrayWithObjects:@"lnj", @"lmj", @"jjj"];
        NSArray *arr = @[@"lnj", @"lmj", @"jjj"];
        //  
        NSLog(@"%@", [arr objectAtIndex:0]);
        NSLog(@"%@", arr[0]);
    

    3. OC 수조 방법

  • 개수 계산
  • [arr count]

  • 수 그룹 마지막 내용
  • [arr lastObject]

  • 수조 첫 번째 내용
  • [arr firstObject]

  • 수조 몇 번째 내용
  • [arr objectAtIndex:1]

  • 그룹이 이 내용을 포함하는지 여부
  • [arr containsObject: @"zs"]


  • 4. NSArray 스트리밍

  • 1.일반 반복
  • for (int i = 0; i < arr.count; ++i) {
            NSLog(@"arr  = %@,count = %i", arr[i],(int )i);
        }
    
  • 2.OC 그룹이라면 OC의 증강 for 순환을 사용해서 옮겨다닐 수 있습니다
  • arr의 원소를 하나씩 추출하고 추출한 원소를obj
  • 에 부여한다.
  • 주의:obj의 유형은 그룹의 요소의 유형에 따라 쓸 수 있으며 NSObject
  • 를 반드시 쓰지 않아도 됩니다.
    for (NSString *obj in arr) {
            NSLog(@"obj = %@", obj);
        }
    
  • 3.OC 그룹의 교체기를 사용하여 [개발 제안 사용]
  • enumerateObjectsUsingBlock
  • 원소를 꺼낼 때마다 Block
  • 을 호출합니다
  • Block을 호출할 때마다 현재 추출한 요소와 요소에 대응하는 인덱스를 우리에게 전달합니다
  • obj는 현재 추출한 요소이고 idx는 현재 요소에 대응하는 인덱스
  • stop은 언제 반복을 멈추는지 제어하는 데 사용됩니다
  •   [arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            NSLog(@"obj = %@, idx = %lu", obj,idx);
        }];
    

    5. NSArray의 모든 개체에 대한 메서드 메시지

  • OC 그룹 저장 대상을 사용하면 OC 그룹의 모든 요소를 지정한 방법으로 실행할 수 있음
  • makeObjectsPerformSelector
  • makeObjectsPerformSelector: withObject:
  • 참고:
  • 수조에 같은 유형의 데이터가 저장되지 않고 같은 방법이 없으면 오류 보고
  • withObject: 호출 방법에 전달해야 하는 매개 변수
  • [arr makeObjectsPerformSelector:@selector(say)];
    [arr makeObjectsPerformSelector:@selector(sayWithName:) withObject:@"lnj"];
    

    배열 정렬

  • sortedArrayUsingSelector: @selector(compare: )
  • compare 방법은 그룹의 요소를 정렬합니다. 그룹의 요소는 Foundation 프레임워크의 대상이어야 하며 사용자 정의 대상이 될 수 없습니다
  •     NSArray *arr = @[@(1),@(54),@(2),@(34),@(66),@(21),@(660),@(3),@(23),@(566)];
        NSArray *newArr = [arr sortedArrayUsingSelector:@selector(compare:)];
        NSLog(@"%@", newArr);
    
  • NSArray *newArr = [arr sortedArrayWithOptions:NSSortStable usingComparator:^NSComparisonResult(Person *obj1, Person *obj2)
  • 이 방법은 기본적으로 오름차순으로 정렬됩니다
  • .
  • 이 정렬 방법은 이분법
  • 이다.
  • return obj1.age > obj2.age;오름차순
  • return obj1.age < obj2.age;내림차순
  •     NSArray *arr = @[@(1),@(54),@(2),@(34),@(66),@(21),@(660),@(3),@(23),@(566)];
    //    NSArray *newArr = [arr sortedArrayUsingSelector:@selector(compare:)];
        NSArray *newArr =[arr sortedArrayWithOptions:NSSortStable usingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
           return obj1 < obj2;
        }];
        NSLog(@"%@", newArr);
    

    7. NSArray 및 NSString 전환

  • componentsJoinedByString
  • 용 - 모든 이름을 연결하여 문자열을 생성
  •     NSArray *arr = @[@"lm1",@"lm2",@"lm3",@"lm4", ];
        NSString *str = [arr componentsJoinedByString:@"-love-"];
        NSLog(@"%@", str);
    // : lm1-love-lm2-love-lm3-love-lm4
    
  • 문자열을 통해 그룹을 생성합니다.'
  • componentsSeparatedByString、
  • **를 구분자로 배열
  •     NSArray *arr = @[@"lm1",@"lm2",@"lm3",@"lm4", ];
        NSString *str = [arr componentsJoinedByString:@"-love-"];
        NSLog(@"%@", str);
        NSArray * newArr = [str componentsSeparatedByString:@"love"];
        NSLog(@"newArr:%@", newArr);
    

    8. NSArray 파일 읽기와 쓰기

  • 1.배열을 파일에 쓰기
  • writeToFile
  • iOS 개발에서 일반적으로 XML 파일의 확장자를plist
  • 로 저장합니다
  • 2.파일에서 배열 읽기
  • arrayWithContentsOfFile
  • 주의: writeToFile는 그룹에 저장된 요소만 기록할 수 있습니다.Foundation 프레임워크의 클래스가 만든 대상입니다. 사용자 정의 대상만 저장하면 기록할 수 없습니다

  • NSMutableArray


    1. NSMutable Array 소개

  • NSMutable Array 소개
  • NSMutableArray는 NSArray의 하위 클래스
  • 입니다.
  • NSMutable Array는 가변적이며 NSArray는 가변적이지 않습니다

  • 2. NSMutableArray의 기본 사용 방법

  • 1.빈 그룹 만들기
  • NSMutableArray *arrM = [NSMutableArray array];
    
  • 2.추가 방법
  • [arrM addObject:@"lnj"];
    [arrM addObjectsFromArray:@[@"lmj", @"jjj"]];
    
  • 3.삽입 방법
  • [arrM insertObject:@"xcq" atIndex:1];
    
  • 4.삭제 방법
  • [arrM removeObjectAtIndex:0];
         NSLog(@"%@", arrM);
    
        [arrM removeLastObject];
        NSLog(@"%@", arrM);
    
        [arrM removeObject:@"A"];
         NSLog(@"%@", arrM);
    
  • 5.교체 방법
  • [arrM replaceObjectAtIndex:1 withObject:@"M"];
        NSLog(@"%@", arrM);
    
  • 6.가져오는 방법
  • [arrM objectAtIndex:3];
        NSLog(@"%@",arrM[3]);
    
  • 7.주의
  • @[]를 통해 가변 그룹을 만들 수 없습니다. @[]는 가변 그룹을 만들 수 없기 때문입니다
  • 변환할 수 없는 그룹을 변환할 수 있는 그룹으로 사용하면 실행 중 오류가 발생합니다
  • 좋은 웹페이지 즐겨찾기