I have read the Soundcloud's sdk documentation for iOS and it doesn't seem to say anything about searching for songs, though it talked about listing tracks from an existing Soundcloud user. So are there any resources out there or examples?
You have to use this format:
https://api.soundcloud.com/me/tracks?q=SEARCHTEXT&format=json
Just remember, if the user enters a space, you have to replace it with %20
, you can achieve this by
NSString *search = [originalSearch stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
Then, just request the JSON data like this:
[SCRequest performMethod:SCRequestMethodGET onResource:[NSURL URLWithString:[NSString stringWithFormat:@"https://api.soundcloud.com/me/tracks?q=%@&format=json", search]] usingParameters:nil withAccount:[SCSoundCloud account] sendingProgressHandler:nil responseHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
My final code looks like this:
NSString *search = [searchBar.text stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
[SCRequest performMethod:SCRequestMethodGET onResource:[NSURL URLWithString:[NSString stringWithFormat:@"https://api.soundcloud.com/me/tracks?q=%@&format=json", search]] usingParameters:nil withAccount:[SCSoundCloud account] sendingProgressHandler:nil responseHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSError *jsonError;
NSJSONSerialization *jsonResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError];
if (!jsonError && [jsonResponse isKindOfClass:[NSArray class]]) {
self.searchQuery = (NSArray *)jsonResponse;
[self.tableView reloadData];
}
else {
NSLog(@"%@", error.localizedDescription);
}
}];`
I hope this helped!