NSURL을 NSString으로 변환


336

사용자가 내장 앱 이미지 또는 iphone 사진 라이브러리에서 이미지를 선택할 수있는 앱이 있습니다. 나는NSString저장 속성 를 사용합니다 imagePath.

이제 내장 앱 이미지의 경우 파일 이름을 NSString에 저장으로 저장합니다 [occasion imagePath]. 그러나 사용자가 사진 라이브러리에서 이미지를 선택하는 두 번째 경우에는 저장할 수 있도록 NSURL변환하려는 이미지를 얻 NSString습니다 [occasion imagePath.

를로 변환 NSURL할 수 NSString있습니까?

답변:


682

Objective-C에서 :

NSString *myString = myURL.absoluteString;

스위프트에서 :

var myString = myURL.absoluteString

문서 에 대한 추가 정보 :


132

순수한 문자열에 관심이 있다면 :

[myUrl absoluteString];

URL로 표시되는 경로에 관심이 있고 ( NSFileManager예를 들어 메소드 와 함께 사용하려는 경우 ) :

[myUrl path];

안녕하십니까, 귀하의 답변에 감사드립니다. 내가 저장 한 스트레인에서 이미지를로드하려고 할 [myUril path];때 절대 asset.jpg문자열 대신 경로를 사용할 때 NSFileManager를 사용하여 언급 한 것에 관심 이 있습니다. 절대 이름 대신 경로 를 사용하면이를 사용하는 방법을 더 자세히 설명 할 수 있습니까? 이미지를 UIImage 인스턴스에로드 하시겠습니까?
알리

안녕하세요. 물론 파일 이름에서 실제 파일 시스템 경로를 얻으려면 파일이 저장된 위치를 알고 NSString의 stringByAppendingPathComponent :를 사용하여 전체 경로 (디렉토리 + 파일 이름)를 작성해야합니다.이 규칙의 유일한 예외는 이미지가 앱 번들에 저장되어 있음을 알고 있으면이 경우 전체 작업을 수행하는 [UIImage imageNamed : "name"] 호출 만 사용할 수 있습니다. 그러나 다른 경우에는 전체 경로를 지정해야합니다.
viggio24

안녕하세요, 다시 한 번 감사드립니다. NSString assets-library://asset/asset.JPG?id=1000000001&ext=JPG을 사용하여 이미지를 UIString 으로 변환 한 [myUrl absoluteString]후 결과를 변환하여 저장 한이 NSString 을 사용하여 이미지를 UIImage에로드하는 방법에 대해서는 여전히 혼란 스럽습니다 . 여기서 나는이 점에 관해이 질문을했지만 대답을 얻지 못했습니다. 답변 해 주시면 감사하겠습니다 [ stackoverflow.com/questions/8085267/…
Ali

2
예, NSFileManager와 함께 사용하려면 myUrl.absoluteString 대신 myUrl.path를 사용해야합니다. Viggo24 덕분에 !!
flypig

assets-libraryURL이 아닌 file하나 의 URL 이 있으므로 와 호환되지 않습니다 NSFileManager. 이러한 URL에 대한 액세스는에 의해 엄격하게 제어됩니다 ALAssetsLibrary.
Mike Abdullah

46

스위프트에서 이것을 시도하십시오 :

var urlString = myUrl.absoluteString

목표 -C :

NSString *urlString = [myURL absoluteString];

NSString을 사용했습니다 * urlString = [myURL absoluteString]; 그러나이 오류가 발생하여 xcode가 충돌했습니다. -[__ NSCFString absoluteString] : 인식 할 수없는 선택기가 인스턴스 0x791a18e0으로 전송
Võ Mai Trinh

@ VõMaiTrinh는 귀하 myURL가 NSString 클래스의 객체 임을 의미합니다 . NSString에는 absoluteString메소드 가 없으므로 충돌이 발생합니다.
베릴륨

17

신속한 업데이트 :

var myUrlStr : String = myUrl.absoluteString

10
StringSwift는 형식 유추를 사용하므로 생략 할 수 있습니다.
Salavat Khanov

실제로 생략 해야String 합니다-Swift Design Guidelines는 가능한 한 적은 중복 코드를 얻으려고합니다.
true를 반환

1

방금이 일로 싸웠고이 업데이트가 작동하지 않았습니다.

이것은 결국 Swift에서 이루어졌습니다.

let myUrlStr : String = myUrl!.relativePath!

1

어느 쪽이든 사용할 수 있습니다

NSString *string=[NSString stringWithFormat:@"%@",url1];

또는

NSString *str=[url1 absoluteString];

NSLog(@"string :: %@",string);

문자열 :: 파일 : ///var/containers/Bundle/Application/E2D7570B-D5A6-45A0-8EAAA1F7476071FE/RemoDuplicateMedia.app/loading_circle_animation.gif

NSLog(@"str :: %@", str);

str :: 파일 : ///var/containers/Bundle/Application/E2D7570B-D5A6-45A0-8EAA-A1F7476071FE/RemoDuplicateMedia.app/loading_circle_animation.gif


0

Swift에서 :-var str_url = yourUrl.absoluteString

문자열에 URL이 생성됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.