How can I remove part of NSURL and keep the result in NSString format?
How can I format it file:///Applications/App%20Store.app
to be stored as an App Store string? I want to remove everything up to "App% 20Store.app" and automatically add space for% 20 to the new saved row.
My code takes user input from NSOpenPanel()
and stores the result shown above into an NSURL variable.
EDIT . He works with it! Thanks to
var URLinString : String = selectedApp!.absoluteString!
let newString = URLinString.stringByReplacingOccurrencesOfString("file:///Applications/", withString: "")
let newerString = newString.stringByReplacingOccurrencesOfString("%20", withString: " ")
+3
DanTdd
source
to share
4 answers
Objective-C
NSURL *url = [NSURL URLWithString:@"file:///Applications/App%20Store.app"];
NSString *lastComponent = [url lastPathComponent];
NSLog(@"Last path component:%@", lastComponent);
Swift
var url = NSURL(string:"file:///Applications/App%20Store.app")
var lastComponent = url?.lastPathComponent
println("\(lastComponent)")
if lastComponent == "App Store.app" {
println("Yes")
}
Console
Optional("App Store.app")
Yes
+12
Inder kumar rathore
source
to share
According to what you say, you want to get the filename.
You can use methods of the NSString class (Edited thanks to comments)
In Objective-C :
NSURL *myNSURL = [NSURL URLWithString:@"file:///Applications/App%20Store.app"];
//Extract filename and remove file extension
NSString* fileName = [[myNSURL lastPathComponent] stringByDeletingPathExtension];
In Swift :
var myNSURL = NSURL(string:"file:///Applications/App%20Store.app")
//Extract filename and remove file extension
var fileName = myNSURL?.lastPathComponent?.stringByDeletingPathExtension
+2
Niko
source
to share
let link = "file:///Applications/App%20Store.app"
extension String {
var fileName : String {
return stringByRemovingPercentEncoding?.lastPathComponent.stringByDeletingPathExtension ?? ""
}
}
print(link.fileName)
+2
Leo dabus
source
to share
NSURL *url = …;
NSString *escapedFileName = [url lastPathComponent];
NSString *fileName = [escapedFileName stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Typed in Safari.
0
Amin Negm-Awad
source
to share