【GeekBand】Week2. 필기 정리

5487 단어

1. 【OC/2-1】 문자열 처리

  • NSString(정상 및 공유 메커니즘) NSMutableString(가변)
  • 초기화
  • NSString *str = @"Hello World!";
    NSString *str = [[NSString alloc]initWithCString:"Hello World!"
                                              encoding:NSUTF8StringEncoding];
    NSString *str = [NSString stringWithCString:"Hello World!"
                                         encoding:NSUTF8StringEncoding];
    NSMutableString *mustr = [NSMutableString stringWithCapacity:100];
    
  • 문자열 길이
  • str.length
    [str length]
    
  • 판단이 같다
  • str1 isEqualToString: str2 // 【 】 
    str1 == str2 //【 】 ,【 】 
    
  • 문자열의 i자를 되돌려줍니다
  • [str characterAtIndex: i]
    
  • 대소문자
  • str = str.uppercaseString; // 
    str = str.lowercaseString; // 
    str = str.capitalizedString; // 
    
  • str1에서str2가 존재하는지 찾습니다
  • /**********
    typedef struct _NSRange {  
          unsigned int location; // 
          unsigned int length; // 
    }NSRange;
    **********/
    if ([str1 rangeOfString:str].location != NSNotFound) {  
          // 
    }
    /*
    NSRange range = [str1 rangeOfString:@"Hello"];
    range.location
    range.length
    */
    
  • 자열을 캡처합니다
  • substringToIndex // , , 
    substringFromIndex // , 
    substringWithRange // NSRange , , 。
    
  • 접두사가 존재하는지 판단한다
  • hasPrefix
    
  • 포맷(?)
  • NSString* format = [NSString stringWithFormat: @"[%d, %d]", 100, 200];
    
  • NSMutableString의 삭제 및 수정 방법
  • [mustr3 appendString:@"Hello Objective"];
    [mustr3 insertString:@"-C" atIndex:mustr3.length];
    [mustr3 setString:@"Hi Objective"];
    NSRange replaceRange = NSMakeRange(0, 2);
    [mustr3 replaceCharactersInRange:replaceRange withString:@"Hello"];
    NSRange deleteRange = NSMakeRange(5, 10);
    [mustr3 deleteCharactersInRange:deleteRange];
    

    2.【OC/2-2】집합 유형


    NSArray & NSMutableArray

  • 초기화
  • NSArray *array = [NSArray arrayWithObjects:@"Shanghai",@"Beijing", nil];
    NSArray *array = [[NSArray alloc] initWithObjects:@"Shanghai",@"Beijing", nil];
    NSArray *array = @[@"Shanghai",@"Beijing"];
    NSMutableArray *muArray=[NSMutableArray arrayWithObjects:p1,p2,p3,p4, nil];
    //nil 
    
  • 원소 개수
  • array.count
    
  • 인쇄 배열
  • NSLog(@"array: %@" ,array);
    
  • 수조 원소는 대상일 수밖에 없다
  • /* , NSNumber NSInteger */
    NSNumber *numberObject1=[NSNumber numberWithInteger:300];
    NSNumber *numberObject2=@300u;// 
    /* NSValue struct */
    Point point;
    point.h=100;
    point.v=200;
    NSValue *pointObject=[NSValue value:&point withObjCType:@encode(Point)];
    /* nil*/
    NSNull* nullValue=[NSNull null];
    
  • NSArray[불가]는 원소의 길이와 원소의 바늘을 바꾸고 바늘이 가리키는 내용을 바꿉니다
  • 빠르게 두루 다니다
  • for (    in array)
    
  • 원소를 찾습니다
  • -(NSUInteger)indexOfObject:(id)anObject; // (isEqual)
    -(NSUInteger)indexOfObjectIdenticalTo:(id)anObject; // 
    
  • 정렬(기존 수조를 바꾸지 않고 새 수조로 되돌아온다)
  • NSArray* sortArray = [array sortedArrayUsingSelector:@selector(compare:)];
    
  • NSMutableArray 요소 수정
  • [muArray addObject:p];
    [muArray removeObjectAtIndex:2];
    [muArray insertObject:p atIndex:1];
    muArray1[0]=p;
    

    NSSet & NSMutableSet


    특징: 무질서 집합, 대상 유일,hash 구현 검색 빠름

    NSDictionary & NSMutableDictionary


    key-value 쌍
  • 초기화(KV 위치는 반대임)
  • NSDictionary *dictionary1 = @{
          @"Shanghai" : p1,
          @"Beijing" : p2,
          @"New York" : p3,
          @"Paris" : p4
    };
    NSMutableDictionary *dictionary2 = 
    [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    p1, @"Shanghai",
                                    p2, @"Beijing",
                                    p3, @"New York",
                                    p4, @"Paris",
                                    nil];
    
  • 키워드에 따라 값을 검사합니다
  • [dictionary1 objectForKey:@"Beijing"]
    dictionary1[@"Shanghai"]
    
  • 빠르게 두루 다니다
  • for(NSString* key in dictionary1) {
          id object=dictionary1[key];
          NSLog(@"key:%@, object:%@", key, object);
    }
    
  • 수정값
  • [dictionary2 setObject:p5 forKey:@"London"];
    [dictionary2 removeObjectForKey:@"Shanghai"];
    

    3. 【OC/2-3】ARC


    자동 방출 탱크 @autoreleasepool
  • 기본 주 루틴은 자동으로 호출됩니다. 새 루틴을 만들 때 직접 다시 만들어야 합니다
  • 끼워 넣을 수 있습니다

  • 4.【OC/2-4】유형계약: 협의


    @protocol
  • 정의할 때: 에 쓰십시오.h에서 쓰기 없이 사용할 때: 방법은.m에서 실현하려면 속성이 있어야 합니다.h에서 다시 성명하고 @require 방법은 반드시 실현해야 하며 @optional 방법은 선택할 수 있습니다.[형식] @interface 하위 클래스: 상위 클래스
  • 성명 유형으로 협의의 종류를 실현할 수 있는 대상은 성명 유형이 협의의 매개 변수로 전달될 수 있다
  • 대상의 유형이 협의를 따르는지 아닌지 확실하지 않을 때
  • if ([obj conformsToProtocol:@protocol(AProtocol)]) {
          // 
    }
    
  • 협의는 계승할 수 있다

  • 5. 【OC/2-5】 카테고리 및 확장


    카테고리

  • 새 파일을 만들어서 이름 규범을 실현합니다: 클래스 + 클래스 (알파벳 대문자)
  • 실례 변수, 속성을 추가할 수 없습니다

  • 확장

  • 정의와 실현은 모두 원래의 클래스와 함께 쓰인다(.m 파일에서)
  • 외부에서 접근할 수 없음(사용)
  • 좋은 웹페이지 즐겨찾기