[IOS 개발]objective-c 의 노트.
Car *car = [[Car alloc] init]
2.문자열 초기 화
string = [[NSString alloc] initWithFormat:@"%d or %d",25,524];
string = [[NSString alloc] initWithContentsOfFile: @"/tmp/words.txt"];
3.자동 방출 탱크
NSAutoreleasePool *pool; pool = [[NSAutorelease alloc] init];
[pool drain]
4.이전에 들 어 온 대상 을 보류 하고 현재 대상[new retain][now release]을 방출 합 니 다.
5.대상 교체
replaceObjectAtIndex:withObject:
배열 에서 대상 을 얻다 NSArray objectAtIndex:
6.문법/클래스 성명 계승,@interface Circle:NSObject 실현
@end
@implemention Circle
@end
7.복합
사과 스냅 샷 사용
8.인쇄 클래스 NSLog(@"%@",NSObject);재 작성 description 방법 을 호출 합 니 다.
-(NSString *)description{
NSString *str = [NSString stringWithFormat:@"age=%i",_age];
return str;
}
9.방법 을 m 에 쓰 고 h 파일 에 설명 하지 않 으 면 이것 이 개인 적 인 방법 입 니 다.
10.멤버 변 수 는 기본적으로 proctected
11.예화
Student *stu = [Student new]; ...과 같다 Student *stu = [[Student alloc] init];
12.Xcode 특수 주석\#pragma mark
#pragma mark
- (void)dealloc {
NSLog(@" ");
[super dealloc];
}
13.@class 사전 성명,성능 향상
14.메모리 자동 방출
@autoreleasepool {
Student *stu = [[[Student alloc] init] autorelease];
}
15.Category 는 이미 존재 하 는 클래스 에 새로운 방법 을 동적 으로 추가 할 수 있 습 니 다(구성원 변 수 를 추가 할 수 없습니다).계승 할 필요 가 없습니다.
Studeng 은 이미 존재 하 는 클래스 를 대표 하고(test)는 Category 를 대표 합 니 다.
@interface Student (test)
-(void) testFunc;
@end
16. Block 정 의 는 다음 과 같 습 니 다.
4
int (^Sum)(int,int) = ^(int a, int b) {
return a+b;
};
NSLog(@"sum=%i",Sum(3,4));
매개 변수 없 는 쓰기 방법 은 다음 과 같다.void (^printwyz)() = ^(){
NSLog(@"wyz");
};
printwyz();
Block 은 외부 변 수 를 호출 할 수 있 지만 외부 변 수 를 수정 할 수 없습니다.수정 하려 면 변수 앞 에 를 추가 해 야 합 니 다.block; 클래스 의 Public 구성원 변 수 를 직접 방문 하려 면 클래스 대상 object->var 를 통 해 접근 하 십시오.
18.Foundation 에서 자주 사용 하 는 구조 체
__block int c = 17;
int (^Sum)(int,int) = ^(int a, int b) {
c = 15;
return a+b+c;
};
NSLog(@"sum=%i",Sum(3,4));
19.OC 에서 정적 방법 은 수 동 으로 메모 리 를 방출 할 필요 가 없다.
CGPoint cp;
cp = CGPointMake(10, 10);
CGRect cr;
cr = CGRectMake(10, 10, 10, 10);
CGSize cs;
cs = CGSizeMake(10, 10);
NSRange nr;
nr = NSMakeRange(10, 18);
NSPoint np;
np = NSMakePoint(10, 10);
NSRect nrct;
nrct = NSMakeRect(10, 10, 10, 10);
NSSize ns;
ns = NSMakeSize(10, 10);
20.파일 에서 읽 는 중 영문 과 url 에서 읽 는 파일
//
NSString *str = [[NSString alloc] init];
str = @"hello1";
NSLog(@"%@",str);
[str release]; // ARC ,
// ,
NSString *str2 = [NSString stringWithFormat:@"hello2"];
NSLog(@"%@",str2);
21.포인터 의 포인터 값 교환(주:포인터 가 내용 을 가리 키 는 주 소 를 저장 합 니 다)
NSString *path = @"/Users/angggan/Desktop/aa.txt";
NSString *str3 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",str3);
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSString *str4 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",str4);
================데이터 형식*일부 구조 체 NSRange/NSPoint/NSsize
*문자열 NSString 방법
void ChangeStr(NSString **str)
{
*str = @"wyz-change";
}
void changeInt(int *p)
{
*p = 3;
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSString *str = @"wyz";
ChangeStr(&str);
NSLog(@"%@",str);
int a=4;
changeInt(&a);
NSLog(@"%i",a);
}
return 0;
}
문자열 만 들 기--+(id)string WithFormat:(NSString*)format,...;참고:성명 방법 앞 에는+번호,클래스 방법 이 있 습 니 다.이 방법 은 클래스 대상 만 호출 할 수 있 을 뿐,실례 화 대상 은 호출 할 수 없다 성명 방법 앞 에는-호,실례 화 방법 이 라 고 한다.
문자열 문자 크기---(unsigned int)length;
문자열 비교---(BOOL)isEqualToString:(NSString*)aString; -(NSComparisonResult) compare: (NSString *) string; 참고:대소 문 자 를 구분 하지 않 고 비교 하기-(NSComparisonResult)compare:(NSString)string options: (unsigned) mask;
문자열 에 다른 문자열 이 포함 되 어 있 는 지 여부-(BOOL)hasPrefix:(NSString*)aString;시작-(BOOL)hasSuffix:(NSString*)aString;끝-(NSRange)rangeOfString:(NSString*)aString;포함 하 다 *가 변성 NSString 의 하위 클래스 NSMutableString 방법:+(id)string WithCapacity:(unsigned)capacity;-(void) appendString: (NSString *) aString; - (void) appendFormat: (NSString *) format,...; - (void) deleteCharactersInRange: (NSRange) range; Note:NSMutablestring 은 NSString 의 모든 방법 을 사용 할 수 있 습 니 다.
NSString *str = @"hello";
NSLog(@" =%@", [str uppercaseString]);
NSString *str2 = @"HELLOworlD";
NSLog(@" =%@", [str2 lowercaseString]);
NSLog(@" =%@",[@"hello" capitalizedString]);
NSLog(@" =%i",[@"hello" isEqualToString:@"hello"]);
NSComparisonResult nsret = [@"abc" compare:@"abc"];
if (nsret == NSOrderedSame) {
NSLog(@" ");
}
else if (nsret == NSOrderedAscending) {
NSLog(@" ");
}
else if (nsret == NSOrderedDescending){
NSLog(@" ");
}
NSLog(@" =%i", [@"abc" hasPrefix:@"ab"]);
**가족 NSArray(Objective-C 의 대상 만 저장 하고 nil 을 저장 할 수 없 음)를 모 아 새로운 NSArray:NSArray*array 를 만 듭 니 다.array = [NSArray arrayWithObjects: @"one",@"two",@"three",nil] - (unsigned) count; - (id) objectAtIndex: (unsigned int) index;
참고:절 분수 그룹
*가 변 배열 NSArray 의 보충 클래스 NSMutableArray
+ (id) arrayWithCapacity: (unsigned) capacity; - (void) addObject: (id) anObject; - (void) removeObjectAtIndex: (unsigned) index; - (NSEnumberator *) objectEnumerator; //NSEnumbertor 매 거 진
*NSDictionary--사전 생 성+(id)dictionary WithObjectsAndKeys: (id) firstObject,...; --값 가 져 오기-(id)objectForKey:(id)aKey;
하위 클래스 NSMutableDictionary+(id)dictionary With Capacity:(unsigned int)numItems;-(void) setObject: (id) anObject forKey:(id) aKey; - (void) removeObjectForKey: (id) aKey;
*각종 수치 NSNumber/NSValue/NSNUL
====================메모리 관리 코코아 는 일종 의 인용 계수 기술 을 사용 하거나 보존 계수 로 대상 의 생명주기-(id)retain 을 관리한다.+1 - (void) release; -1 - (unsigned) retainCount;
대상 소유권
자동 방출 탱크
NSAutoreleasePool *pool; pool = [[NSAutorelease alloc] init];
.이전에 들 어 온 대상 을 보류 하고 현재 대상 을 방출 합 니 다[new retain][new release]
임시 대상
쓰레기 수 거 objective-c 도입
.ocoa 메모리 관리 규칙 1.new,copy,alloc 를 사용 하여 대상 을 만 들 때 이 대상 의 보존 계수 기 는 1.대상 을 사용 하지 않 을 때 release/autorealse 메 시 지 를 사용 하여 대상 이 사용 을 끝내 고 소각 되도록 해 야 합 니 다.2.다른 방법 으로 대상 을 얻 었 을 때 이 대상 의 보존 카운터 값 은 1 이 고 자동 으로 방출 되도록 설정 된다.3.대상 을 보류 하면 최종 석방 또는 자동 석방 이 필요 합 니 다.retain 방법 과 release 방법의 사용 횟수 가 같 아야 합 니 다.
===============대상 초기 화
1.할당 alloc(할당 메모리,0 으로 초기 화)2.init 초기 화(메모리 가 져 오기)2.if(self=[super init]라 는 기술 을 사용 하여 안전 을 확보 하고 일부 init 방법 인'nil 로 돌아 가기'행 위 를 캡 처 합 니 다 3.함수 string 을 편리 하 게 초기 화 합 니 다=[NSString alloc] initWithContentsOfFile:@"/tmp/words.txt"]; 4.초기 화 함 수 를 지정 합 니 다(초기 화 방법 중 하 나 를 지정 한 초기 화 함수 로 선택)
================ 특성
1.
@property 와@synthesize //접근 속성 을 설정 하여 getter 와 setter 성명 정 의 를 자동 으로 생 성 합 니 다.
@property 매개 변수 유형 은 3 가지 로 나 뉜 다.
읽 기와 쓰기 속성:readwrite(기본 읽 기와 쓰기)/readonly
setter 처리:assign(기본 값)/retain/copy
원자 성:atomic(다 중 스 레 드 안전)/nonatiomic(다 중 스 레 드 안전 고려 하지 않 음)
2.
@protocol 프로 토 콜 이름
@optional/@required(@optional 대 표 는 반드시 클래스 에서 이 루어 져 야 하 는 것 이 아니 라@required 대 표 는 반드시 이 루어 져 야 합 니 다)
방법.
@end
프로 토 콜 에 열 거 된 방법 은 프로 토 콜 에 해당 하 는 실현 이 아니 라 클래스 로 이 루어 집 니 다(자바 의 인터페이스 와 같 습 니 다)
클래스 계승 협 의 는 다음 과 같다.
@interface A:NSObject<프로 토 콜 이름> //한 쌍 의<>에 프로 토 콜 이름 을 포함 하면 여러 프로 토 콜 이름 을 포함 할 수 있 습 니 다.
================ 예외 처리
@try{
}
@catch ( NSException *exception){
}
@finally{
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Access Request, Session and Application in Struts2If we want to use request, Session and application in JSP, what should we do? We can obtain Map type objects such as Req...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.