将URL链接解析为段

DDD*_*DDD 2 nsurl nsstring ios

http://180.160.1.140/webapp/camera?id=fksmf84-8493-45u3
Run Code Online (Sandbox Code Playgroud)

如何获得这个网址部分fksmf84-8493-45u3? - 这部分在运行时间不断变化.

这是我到目前为止所尝试的.

NSString *url = @"http://180.160.1.140/webapp/camera?id=";
NSArray *parts = [url componentsSeparatedByString:@"="];
NSString *personID = [parts lastObject];
NSLog(@"My ID: %@", personID);
Run Code Online (Sandbox Code Playgroud)

Ric*_*ins 5

使用URL组件:

ObjC:

NSString *urlString = "http://180.160.1.140/webapp/camera?id=fksmf84-8493-45u3";
NSURLComponents *components = [NSURLComponents componentsWithString:urlString];
NSArray *queryItems = components.queryItems;

for (NSURLQueryItem *queryItem in queryItems) {
    if ([queryItem.name isEqualToString:@"id"]) {
        NSLog(@"%@", queryItem.value);
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

迅速:

let urlComponents = NSURLComponents(string: "http://180.160.1.140/webapp/camera?id=fksmf84-8493-45u3")
let queryItems = urlComponents?.queryItems
if let id = queryItems?.filter({$0.name == "id"}).first?.value {
    print(id)
}
Run Code Online (Sandbox Code Playgroud)

Swift 3(基本相同 - NS):

let urlComponents = URLComponents(string: "http://180.160.1.140/webapp/camera?
id=fksmf84-8493-45u3")
let queryItems = urlComponents?.queryItems
if let id = queryItems?.filter({$0.name == "id"}).first?.value {
    print(id)
}
Run Code Online (Sandbox Code Playgroud)