NSURL / NSURLComponents
모든 1 차원 데이터 형식 에서 URI 지극히 높 은 지 위 를 가지 고 있다.인간 이 읽 을 수 있 는 문자열 만 있다 는 점 에서 컴퓨터 에 존재 하고 위치 정 보 를 인 코딩 할 수 있 는 모든 데이터 에 영원히 존재 할 것 이다.
가장 기본 적 인 표현법 에서 URI 는 하나의 scheme 과 하나의 hierarchical part 로 구성 되 어 있 으 며 query 와 fragment 가 있 습 니 다.
Text
: [ ? ] [ # ]
HTTP 와 같은 많은 프로 토 콜 에서 일정한 규범 구 조 를 정의 합 니 다. 예 를 들 어 username, password, port, 그리고 hierarchical part 의 path:
네트워크 프로 그래 밍 에 대한 탄탄 한 이 해 는 URL 의 각 부분 에 대한 완전한 익숙 함 에 뿌리 를 두 었 다.소프트웨어 개발 엔지니어 로 서 프로 그래 밍 언어 표준 라 이브 러 리 에 URI 를 지휘 하 는 기능 이 있 음 을 의미 합 니 다.
만약 어떤 언어 가 표준 라 이브 러 리 에 URL 모듈 이 없다 면, 당신 은 이 언어 를 뛰 어 나 가 야 합 니 다 (걸 을 수 없습니다! 반드시 뛰 어야 합 니 다!). 이것 은 진정한 프로 그래 밍 언어 가 아 닙 니 다.
Foundation 라 이브 러 리 에서
NSURL
URL 을 대표 합 니 다.NSURL
통과 가능 URLWithString:
유형 방법 을 예화 하 다.Objective-C
NSURL *url = [NSURL URLWithString:@"http://example.com"];
만약 입력 값 이 합 법 적 인 URL 이 아니라면, 이 방법 은 하 나 를 되 돌려 줍 니 다.
nil
값 1우 리 는 몇 주 전에 도착 했다.
NSString
path 처리 에 관 한 잔류 기능 도 있 지만, 이러한 기능 은 처리 에 대하 여 NSURL
너무 귀찮아 서 요.손잡이 NSString
으로 전환 하 다 NSURL
가 져 온 추가 전환 비용 은 이 일 을 그다지 편리 하 게 하지 못 하 게 한다. 너 는 항상 이 위 에 시간 을 써 야 한다.하나의 값 이 URL 이 라면 저장 되 어야 합 니 다. NSURL
이 두 가지 유형 을 헷 갈 리 게 하 는 것 은 게 으 르 고 무모 한 API 디자인 이다.추가 알림:
@@
창설 NSURL
@@"http://example.com"
, 어때요? 편리 하 죠?NSURL
한 가지 방법 이 있어 요. +URLWithString:relativeToURL:
base URL 주소 와 관련 문자열 에 따라 URL 을 구성 할 수 있 습 니 다.이 방법의 행 위 는 하위 디 렉 터 리 /
기호 에 대한 처리 로 인해 매우 혼 란 스 럽 고 무질서 하 게 변 했다.여기 에는 이 방법의 전형 적 인 참고 가 있다.
Objective-C
NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"];
[NSURL URLWithString:@"foo" relativeToURL:baseURL];
// http://example.com/v1/foo
[NSURL URLWithString:@"foo?bar=baz" relativeToURL:baseURL];
// http://example.com/v1/foo?bar=baz
[NSURL URLWithString:@"/foo" relativeToURL:baseURL];
// http://example.com/foo
[NSURL URLWithString:@"foo/" relativeToURL:baseURL];
// http://example.com/v1/foo
[NSURL URLWithString:@"/foo/" relativeToURL:baseURL];
// http://example.com/foo/
[NSURL URLWithString:@"http://example2.com/" relativeToURL:baseURL];
// http://example2.com/
URL Components
NSURL
근거 RFC 2396 URL 의 모든 부분의 값 을 가 져 오 는 데 사용 할 accessor 방법 을 정의 합 니 다.–
absoluteString
– absoluteURL
– baseURL
– fileSystemRepresentation
– fragment
– host
– lastPathComponent
– parameterString
– password
– path
– pathComponents
– pathExtension
– port
– query
– relativePath
– relativeString
– resourceSpecifier
– scheme
– standardizedURL
– user
NSURL
공식 문서 문서 와 샘플 은 각종 URL 구성 부분 을 숙지 할 수 있 는 절 호의 참고 입 니 다.사용자 이름과 비밀 번 호 를 URL 로 저장 할 수 있 지만 사용 하 는 것 을 권장 합 니 다.
NSURLCredential
사용자 이름과 비밀 번 호 를 불 러 오고 키 체인 으로 저장 하 는 것 이 좋 습 니 다.NSURLComponents
애플 은 iOS 7 과 OS X Mavericks 에 몰래 추 가 했 습 니 다.
NSURLComponents
이렇게 하면 완벽 하 게 대체 할 수 있다. NSMutableURL
됐어 요.그러나 문서 가 아직 완선 되 지 않 았 기 때문에 이 종 류 는 최근 에 Foundation 이 새로 추 가 된 유형 중 하나 입 니 다.창설
NSURLComponents
인 스 턴 스 와 생 성 NSURL
실례 적 인 방법 은 많 지 않 습 니 다. 하 나 를 통 해 NSString
필요 하지 않 은 base URL 인자 와 만 들 기 +componentsWithString:
& +componentsWithURL:resolvingAgainstBaseURL:
)。되다 alloc init
빈 용 기 를 만 들 고, NSDateComponents
많 지 않다.NSURL
화해시키다 NSURLComponents
다른 점 은 URL component 속성 은 readwrite
라 고 적 었 다.URL 의 각 부분 을 수정 하 는 안전 하고 직접적인 방법 을 제공 합 니 다.scheme
user
password
host
port
path
query
fragment
불법 scheme 이나 port 를 할당 하려 고 시도 하면 이상 을 던 집 니 다.
그리고
NSURLComponents
있다 readwrite
속성 은 각 component 에 대해 [percent - encoded] 를 진행 합 니 다.percentEncodedUser
percentEncodedPassword
percentEncodedHost
percentEncodedPath
percentEncodedQuery
percentEncodedFragment
이러한 percent encoding 속성 에 대한 get 작업 은 retain 을 증가 시 킬 수 있 습 니 다.set 작업 은 기본적으로 이 component 가 올 바른 encode 라 고 생각 합 니 다.불법 percent encode 값 을 할당 하려 고 시도 하면 이상 이 발생 합 니 다.비록합 법 적 인 경로 문자 이지 만 percent - encoded 에서 NSURL 을 호 환 하 는 것 을 권장 합 니 다
-stringByAddingPercentEncodingWithAllowedCharacters:
. URLPathAllowedCharacterSet
인 자 는 모든 ';' 문자 percent - encode '를 사용 합 니 다.Percent-Encoding
percent - encoding 하면...
NSURL
맞다. CFURLRef
전환 이음매 가 없다밑 에 C API 가 있어 요. NSURL
의 모든 기능.포함 CFURLCreateStringByAddingPercentEscapes
와 CFURLCreateStringByReplacingPercentEscapesUsingEncoding
이상:CFURLCreateStringByAddingPercentEscapes
: 문자열 의 복 사 를 만 들 고 같은 의미 의 percent - encoded 문자 로 기 존 문 자 를 대체 합 니 다. Objective-C
CFStringRef CFURLCreateStringByAddingPercentEscapes (
CFAllocatorRef allocator,
CFStringRef originalString,
CFStringRef charactersToLeaveUnescaped,
CFStringRef legalURLCharactersToBeEscaped,
CFStringEncoding encoding
);
CFURLCreateStringByReplacingPercentEscapesUsingEncoding
: 기 존의 모든 대체 가능 한 문 자 를 같은 의미 의 percent - encoded 문자 로 대체 하 는 새 문자열 을 만 듭 니 다. Objective-C
CFStringRef CFURLCreateStringByReplacingPercentEscapesUsingEncoding (
CFAllocatorRef allocator,
CFStringRef origString,
CFStringRef charsToLeaveEscaped,
CFStringEncoding encoding
);
Bookmark URL
마지막 화 제 는 bookmark URL 에 관 한 것 입 니 다. bookmard URL 은 여러 번 시작 할 때 파일 을 안전하게 참조 할 수 있 습 니 다.옳다 고 볼 수 있다 파일 설명자 의 지구 화.
하나의 bookmark 는 파일 위 치 를 설명 하 는 유일한 데이터 형식 입 니 다.
NSData
대상path 와 파일 참조 URL 이 여러 번 시작 되 는 동안 파 괴 될 수 있 음 을 감안 하여 bookmark 는 파일 의 URL 주 소 를 재 구축 하 는 데 사 용 될 수 있 습 니 다. 파일 이 이름 을 바 꾸 거나 위 치 를 이동 하 더 라 도 가능 합 니 다.애플 의 공식 파일 시스템 프로 그래 밍 가이드 의 'Locating Files Using Bookmarks' 부분 에서 bookmark URL 에 대한 내용 을 더 읽 을 수 있 습 니 다.
로켓 가방 을 분사 하 는 것 을 잊 고 날 아 가 는 자동 차 를 잊 어 버 리 세 요. 미래 에 대한 나의 구상 을 보 세 요. 모든 것 은 하나의 URL 이 있 습 니 다. Markdown 코드 로 Git 으로 저장 합 니 다!만약 당신 이 우주 자원 위치 추적 기 에 관심 이 있다 면, 당신 은 나의 생각 에 동의 할 것 입 니 다!
하이퍼텍스트 처럼 통용 표 지 는 철학 개념 으로 통용 표지 이념 은 컴퓨터 시대 보다 먼저 제기 되 었 고 인류 정보 체계 에 도 오래 존재 할 것 이다.이러한 유 니 버 설 표 시 는 우리 정보 시대 의 구 조 를 대표 할 수 있다. 하 나 는 우리 가 우주 에 대한 모든 이 해 를 하나의 네트워크 에서 실체 로 하 는 구조 이다. 이것 은 매우 멋 지고 우리 의 뇌 에 많은 신경 원 이 존재 하 는 것 과 같다.
우 리 는 물리 적 으로 계 산 된 한 무 기 대 폭발 위험 에 처 해 있다.얼마 지나 지 않 아 이런 상황 이 나타 날 것 이다. 인터넷 으로 구 성 된 세계 에서 우리 생활 의 모든 부분 은 URL 이 있 고 전자 화 된 뇌 도 있 으 며 디지털 화 된 정신과 의식 을 가진다.비록 기이 한 점 이 다가 오고 있다 고 말 할 수 는 없 지만, 우 리 는 알 수 없 지만 믿 을 수 없 는 기묘 한 사물 의 가장자리 에 있 으 며, 곧 그것 이 다가 오 는 것 을 느 낄 것 이다.
세 계 는 항상 이렇다. 고양이 사진 을 서로 교환 하 는 기술 은 항상 매우 깊 은 철학 적 의 미 를 담 고 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.