다크호스 프로그래머-OC기초지식

8543 단어 지식 요약
-android 교육,java 교육,당신과 교류를 기대합니다!--

클래스의 기본 개념


클래스:

  • 같은 특징과 같은 행위를 가진 사물의 추상화.
  • 류는 추상적인 개념으로 생활에서 구체적이지 않다
  • 대상은 류의 실례, 즉 류의 구체적인 구현이고 구체적이며 생활 속의 만물은 모두 대상이다
  • 류의 인터페이스 부분의 정의는.h 파일
  • 메서드 설명:


    클래스의 방법은 다음과 같습니다.
     - (void)" "say" ":(NSInteger)" " x " " y " ":(NSInteger)" "y" ”;

    매개변수가 없는 경우
    -(void)say;

    유형의 실현 부분은 다음과 같다.m 파일 중
    클래스의 실현은 클래스를 실현하는 방법이다. 일반적으로 형식을 사용한다.
    [ receiver( )   message( oc )]

    수신자: 클래스 또는 대상(-대상 수신+클래스 수신) 메시지: 방법
    Student *student = [Student alloc];
    // *student 

    [student alloc]를 통해 블록에 개척된 공간이야말로 진정한 대상이다. 단지 포인터 변수인 student는 블록의 첫 번째 주소를 저장하고 이를 통해 대상을 방문할 수 있기 때문에 우리는 포인터 변수인 studen을 대상이라고 부른다(그러나 진정한 대상은 블록의 공간이고 student의 본질은 하나의 포인터 변수이다)
    초기화(초기값 지정)
        Student *student = [[student alloc] init ];
    

    설정기 및 액세서리


    설정기(name의 경우)
    - (void)setName:(NSString *)name;
    
    - (void)setName:(NSString *)name  
    {
       self = [super init];
       if(self != nil) {
          _name = name;
        }
        return self;
    
    }

    액세서리(name)
    -(NSString *)name;
    -(NSString *)name
    {
       return _name;
    }

    설정기는 실례 변수에 값을 부여하고, 액세서리는 실례 변수의 값을 얻는다
    속성은.h 파일에서 다음과 같은 속성을 설명합니다
    @property(nonatomic, retain)NSString *name;
    @property(nonatomic, retain)NSString *sex;
    @property(nonatomic, assign)NSInteger age;

    설정기와 액세서리에 해당하며 시스템은 자동으로 생성되고 직접 호출하면 되며 기본적으로 생성된 실례 변수의 가시도는 사유이다
    (retain assign copy는 의미 속성이고, 대상을 설명할 때retain copy를 사용하며, 기본 데이터 형식으로 설명할 때assign을 사용합니다)

    물려받다


    상속: 여러 클래스가 같은 실례 변수와 방법을 부분적으로 나타낼 때 상속 상속의 사용을 고려해야 한다. 여러 클래스에서 같은 실례 변수와 방법을 제시하여 하나의 공공 부류로 만들어야 한다.상속을 통해 하위 클래스는 부류의 실례 변수와 방법을 사용할 수 있고 자신의 실례 변수와 방법을 추가할 수 있다.동시에 부류의 방법을 고칠 수 있다.

    BLOCK 사용


    블록은 정의를 중첩할 수 있고 정의할 때 마지막에 추가할 수 있다.반환값은 블락 변수의 초기값을 생략할 수 있으며 블락은 함수를 저장하는 데 사용되기 때문에 블락 변수에 값을 부여할 때 전체 함수의 실현을 부여한다
    int(^min)(int x, int y) = ^(int x, int y) {
        return x + y;
    };

    Block 내부에서 외부에서 정의한 부분 변수를 사용할 때, 변수가 Block에 의해 수식되지 않으면 Block 내부에서 그를 수정할 수 없습니다. 수정하려면 변수가 반드시 있어야 합니다Block 손질Block은 컴파일러에게 컴파일할 때 Block 내부에서 외부 변수를 상수로 사용하지 말고 변수로 사용하라고 알려 줍니다. 만약 Block에서 전역 변수에 접근한다면 Block 수식이 필요하지 않습니다Block int b = 10;(이중 밑줄)
    int (^min)(int x,int y) = ^(int x, int y){
            b = 15;
            a = 20;
            return x - y
     };      

    NSString 일반 함수


    문자열 길이length에서 문자열의 어떤 문자를 가져오려면characterAtIndex: 문자열이 지정한 문자열로 시작하거나 끝날지 판단합니다. -hasPrefix (시작),hasSuffix (끝) 는 지정한 문자열의 범위rangeOFString을 찾고, 되돌아오는 형식은 NSRange (구조체 형식) 이고, 동작은 복사본입니다.아래 첨자에 대응하는 문자열을 지정합니다 (아래 첨자는 0에서 시작합니다) stringWithFormat: 아래 첨자에 지정하기 전의 문자열을 가져오고, 아래 첨자는 0으로 시작하지만, 아래 첨자에 대응하는 문자는 포함되지 않습니다 (아래 첨자는 0에서 시작합니다) substringToIndex: 문자열 결합stringByAppendingFormat: 문자열 교체stringWithFormat: 문자열 비교compa:

    NSArray 일반 함수


    initWithObjects 초기화: 원소 개수 가져오기count 지정한 하위 원소 가져오기objectAtIndex: 그룹 원소 가져오기 아래 indexOfObject 가져오기: 어떤 대상을 포함하는지 판단하기containsObject: 그룹 가져오기sortedArray UsingSelector: 그룹을 옮겨다니기
    for (NSString *str in array1) {     NSLog(@"%@", str)
     }

    요소addObject 추가: 요소insertObject 삽입:removeObjectAtIndex 삭제:

    NSDictionary 일반 함수


    initWithObjectsAndKeys 초기화: 사전의 요소 개수를 구하여count에서 모든 키 allKeys를 가져옵니다 키에 따라value를 가져옵니다 (대응하는 형식이 일치해야 합니다) objectForKey: 사전을 빠르게 옮겨다니며 다음과 같습니다.
            for (NSString *key in dic) {            NSLog(@"%@", [dic objectForKey:key]);        }

    요소 setObject 추가: 요소 삭제removeObjectForKey: 키에 대응하는 요소 수정 setObject:forKey

    NSSet 일반 함수


    initWithObjects 초기화: 원소 개수 가져오기count 가져오기 집합 중의 원소 개수anyObject 집합에 어떤 대상이 포함되어 있는지 판단containsObject: 원소 추가addObject: 원소 삭제removeObject:

    NSNumber 일반 함수


    예를 들어, 기본 데이터 유형을 NSNumber 유형의 객체로 변환하고, 문자 유형 기본 데이터를 적절한 NSNumber 유형의 객체로 변환합니다.
    char a = 'f’;
    NSNumber *a1 = [NSNumber numberWithChar:a];

    NSNumber 유형의 객체를 기본 데이터 유형 chara2 = [a1 charValue]로 변환합니다.NSNumber 객체 비교 compare:

    NSDate 일반 함수


    미래 또는 과거 날짜를 추구하기 위해dateWith Time Interval Since Now: (시간 간격은 초 단위) 두 날짜의 시간 간격을 얻기 위해time Interval SinceDate: 두 날짜의 아침과 밤을 비교하고,earlier Date: 늦은laterDate를 얻기 위해: 날짜 형식을 NSData 대상으로 변환하기
     NSString *str = @"2014 05 01  10 23 18 "; 
     NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"yyyy MM dd  HH mm ss "];     // NSData 
    (dateFromString:)  NSDate *d = [formatter dateFromString:str];  NSLog(@"%@", d);

    클래스 확장


    분류, 클래스,category는 원본 코드가 없는 클래스를 추가하는 방법(방법만 추가하고 실례 변수를 추가하지 않음)은 하나의 클래스의 기능을 확장하는 방식 중 하나이며, 원래의 클래스를 확장하는 방법은 원래의 클래스의 일부가 되어 사용하면 분류할 수 있다.h(인터페이스 부분), 그리고.구현 섹션h문서에 성명을 작성하는 방법,.m 파일에서 작성 방법의 분류를 위한 정의 형식입니다. @interface 시작 + 확장된 클래스 이름 (분류 이름) @end 매듭

    합의


    협의는 임무 명세서에 해당하고 해야 할 조작(일련의 방법의 성명만 있음)을 규정한다. 누가 협의에 복종하고 명세서의 방법(임무 명세서의 임무를 완성하는 것)을 실현해야 하기 때문에 협의는 유일하다.h 파일, 없음.m 파일 프로토콜은 클래스를 복종시키고 프로토콜에 복종한 후에 프로토콜을 실현하는 방법

    메모리 관리


    OC에서 인용 계수 메커니즘을 사용하고 메모리 메모리 관리의 기본 원칙을 관리한다. 만약에 한 대상에 alloc retain copy를 한 후에 그 대상의 소유권을 가지게 된다면 그것에 대해release 또는autorelease를 해야 한다.
    alloc retain copy를 호출하면 release 또는 autorelease autorelease를 실행하여 autorelease로 성명된 대상을 가장 가까운 자동 방출 탱크에 넣고, 자동 방출 탱크가 소각되면 탱크의 모든 대상에게 release 메시지release를 보내고, 클래스의 대상 인용 계수를 즉시 방출할 때 시스템은 자동으로 이 클래스의 dealloc 방법을 호출하여 공간을 회수한다. 이 방법은 시스템이 자동으로 호출하고,수동으로 호출할 수 없습니다
    하나의 대상을 하나의 집합에 넣을 때 (수조, 사전, 집합) 대상의 인용 계수를 +1으로 합니다. 내부에서retain 작업이 이루어졌기 때문에collocection (집합, 사전, 수조), 공간이 회수될 때, 그들은 용기, 모든 요소에 release 메시지를 보냅니다. (원소를 추가할 때의retain 조작) collection (수조, 사전, 집합) 에서 원소를 제거할 때, 인용 계수 -1

    좋은 웹페이지 즐겨찾기