I'm working with the strings and i have a little problem that i'm not understanding. In fact, i have a string like this: "ALAsset - Type:Photo,
URLs:assets-library://asset/asset.JPG?id=168BA548-9C81-4B08-B69C-B775E5DD9341&ext=JPG"
and i need to find the string between "URLs:" and "?id="
. For doing this, i'm trying to create a new string using the NSRange
. In this mode i give the first index and the last index that i need, but it seems not working.
Here there is my code:
NSString *description = [asset description];
NSRange first = [description rangeOfString:@"URLs:"];
NSRange second = [description rangeOfString:@"?id="];
NSString *path = [description substringWithRange: NSMakeRange(first.location, second.location)];
It return to me this kind of string: "URLs:assets-library://asset/asset.JPG?id=168BA548-9C81-4B08-B69C-B775E5DD9341&ext=JPG"
. Is it correct? I'm expecting to obtain "assets-library://asset/asset.JPG" string.
Where i'm doing wrong? Is there a better way to do this?
I have followed this url for help: http://www.techotopia.com/index.php/Working_with_String_Objects_in_Objective-C
Thanks
Don't parse the
ALAsset
description string! If the description ever changes your code breaks. Use the methodsALAsset
andNSURL
provide you. First, get the dictionary of URLs (mapped by asset type) through thevalueForProperty:
method. Then, for each URL, get theabsoluteString
and remove the query string from it. I got the string you were looking for by placing the following code in theapplication:didFinishLaunchingWithOptions:
method from the single-view iPhone app template.