I have an assets library url to a photo:
"assets-library://asset/asset.JPG?id=8D4D7820-EDD6-4CA4-A44A-2ACD53A112FC&ext=JPG"
I have this in a string property imgURLString.
I am trying to convert this to NSURL in the following way:
NSURL *imageURL = [NSURL URLWithString:self.imgURLString];
However, I am getting an exception:
[NSURL length]: unrecognized selector sent to instance 0xa8281f0
I am sure I have the above mentioned string in self.imgURLString and it is not trying to convert an empty string. So why am I getting this exception and how do I solve it?
I am basically trying to convert the string to an NSURL to fetch the photo using the assets library url.
Your self.imgURLString is actually already an NSURL, not an NSString. You are assigning the asset URL (an NSURL) to your NSString property. Change your property to be an NSURL.
Related
I am trying to resolve an alias file's original path using Objective-C(or maybe C++; it's an .mm file). Not being very much familiar, I am somehow missing + and - methods' usage. I am aware of them being class and instance methods respectively, but in practice, the following the code, with the indicated lines give me following warning and error(at build):
Class method '+bookmarkDataWithContentsOfURL:' not found (return type defaults to 'id')
-
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSData bookmarkDataWithContentsOfURL:]: unrecognized selector sent to class 0x7fff88942cb8'
with 0x7fff88942cb8 being the NSData address as per lldb.
Which files should I make the changes in, to get bookmarkDataWithContentsOfURL:error: and URLByResolvingBookmarkData to work?
void *pathclass::resolveAliasFromURL(const char *filepath) const
{
NSError *error = nil;
NSString *filepathh = [[NSString alloc] initWithUTF8String:filepath];
NSData *bookmarkk = [NSData bookmarkDataWithContentsOfURL:filepathh]; /*problematic line*/
BOOL isstale = NO;
NSURL *actual = [NSURL URLByResolvingBookmarkData:bookmarkk bookmarkDataIsStale:isstale error:error];/*another problematic line, but build fails already*/
NSString *urlString = [actual absoluteString];
NSLog(#"%#",urlString);
}
If there are any other faults, please point out.
Your call to bookmarkDataWithContentsOfURL: is wrong in a few ways:
The signature looks like this:
+ (NSData *)bookmarkDataWithContentsOfURL:(NSURL *)bookmarkFileURL error:(NSError * _Nullable *)error;
First, the first parameter is of type NSURL*, not NSString*. Next, you miss off the error parameter completely (despite defining a variable for it). Lastly, the method is a class method on NSURL not NSData (NSData* is the return type).
So, first, make your file path into an NSURL*:
NSURL* bookmarkUrl = [NSURL URLWithString:filepathh];
Then, call the function using the proper arguments:
NSData *bookmarkk = [NSURL bookmarkDataWithContentsOfURL:bookmarkUrl error:&error];
You should check the returned value against nil - if it's nil, then an error occurred, and the error information will be contained inside error.
The documentation is quite helpful.
Your call to URLByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale:error: has similar problems: you are missing several parameters, the first parameter should be NSURL, etc. Again, the documentation should help.
In my Mac app I am getting Data from hey JSON web service and one of the fields is an image. When I do a NSLog(#"%#", [dict valueForKeyPath:#"profileImageDataString"] ); I see all of the data and it is correct. And I can also put it in a NSURL object like this NSURL *imgUrl = [dict valueForKeyPath:#"profileImageDataString"]; and it is still correct. But when I try this NSData *imgData = [NSData dataWithContentsOfURL:imgUrl]; or this NSImage *userImage = [[NSImage alloc] initWithContentsOfURL:imgUrl];I get the error unrecognized selector sent to instance. If I put the data in a NSString, two thirds is cut off at the end.
I am trying to save the Image data from the Jason web service into a text file to that later it can be loaded into a NSImage on in a user settings view.
Someone tell me what it is that I'm doing wrong?
This is the value of profileImageDataString that is returned by the web service;
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
The string seems to be a base64 encoded string representation of an image.
Try to create an NSData object from the string and the image from the data.
NSString *imgDataString = [dict objectForKey:#"profileImageDataString"];
NSData *imgData = [[NSData alloc] initWithBase64EncodedString:imgDataString options:0];
NSImage *userImage = [[NSImage alloc] initWithData:imgData];
And I can also put it in a NSURL object like this NSURL *imgUrl = [dict valueForKeyPath:#"profileImageDataString"]; and it is still correct.
You haven't got an NSURL object. You've got an NSString object. Declaring that your pointer refers to an NSURL and using the untyped getter valueForKeyPath: (or, even, much more correctly, objectForKey:) does not change the type of the object.
To convert a string to a URL use +[NSURL URLWithString:]. But what you're showing us isn't a URL. So why try to make it one at all?
But when I try this NSData *imgData = [NSData dataWithContentsOfURL:imgUrl]; or this NSImage *userImage = [[NSImage alloc] initWithContentsOfURL:imgUrl];I get the error unrecognized selector sent to instance.
That's because you're supplying an NSString, which does not implement the same selectors as an NSURL.
If I put the data in a NSString, two thirds is cut off at the end.
No it isn't; however when you log any object, all you get is enough information to help in debugging. Using NSLog is not intended to be a way to store the same amount of data in another form, or indeed to do anything strictly well defined other than help you to debug.
Get your string, use the approach as suggested by vadian.
In my app, I need to make a json request to google direction service through NSURL.
I'm able to get JSON response, when the URL is static.
NSURL *googleMapsURL=[NSURL URLWithString:#"http://maps.googleapis.com/maps/api/directions/json?origin=SanFrancisco,CA&destination=Dallas,TX&waypoints=Los+Angeles,CA%7CHouston,TX&mode=driving&sensor=false"];
NSData *data=[NSData dataWithContentsOfURL:googleMapsURL];
But, when I specify the source and destination stations dynamically, it's not working.
NSString *urlString=[NSString stringWithFormat:#"http://maps.googleapis.com/maps/api/directions/json?origin=%#&destination=%#&waypoints=Los+Angeles,CA%7CHouston,TX&mode=driving&sensor=false",sourceStation, destinationStation];
NSURL *googleMapsURL=[NSURL URLWithString:urlString];
NSData *data=[NSData dataWithContentsOfURL:googleMapsURL];
It's generating the following error.
2012-05-08 03:30:15.960 SupplyTrackerApp2[3079:16403] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'
*** First throw call stack:
(0x19a7052 0x2448d0a 0x194fa78 0x194f9e9 0xecdfbd 0x2aae6 0x2a900 0x56ffbf 0x57021b 0x5704c3 0x580b71 0x5813df 0x581986 0x5815a4 0x34650 0x19a8ec9 0x4ab5c2 0x4ab55a 0x550b76 0x55103f 0x5502fe 0x4d0a30 0x4d0c56 0x4b7384 0x4aaaa9 0x1bbefa9 0x197b1c5 0x18e0022 0x18de90a 0x18dddb4 0x18ddccb 0x1bbd879 0x1bbd93e 0x4a8a9b 0x25cd 0x2535 0x1)
terminate called throwing an exception
Can any one help me?
To me it looks like either sourceStation or destinationStation is nil. For debugging you could try setting them explicitly in the lines before your NSString *urlString definition.
NSString *sourceStation = #"SanFrancisco,CA";
NSString *destinationStation = #"Dallas,TX";
If this works, then it's a problem with filling the respective NSStrings...
I am trying to build a URL string that will be passed to UIWebView object. Up until now I have been pointing to remote files and have now moved the files into the main bundle.
I imported my files using the "create folder reference" option and want to point to the index.html file inside of a folder named 'html'.
I need to append hashtags to the URL generated by the code below but keep getting this error:
-[NSURL stringByAppendingString:]: unrecognized selector sent to instance
I can't figure out why when casting my variables as a NSString I am receiving this error when trying to append to it.
Here is my code:
NSInteger rowNumber = indexPath.row;
NSInteger metroRank = rowNumber+1; //sorted by rank, adding one because of zero-based array
NSString *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:#"index" ofType:#"html" inDirectory:#"html"]];
NSString *urlSuffix = [NSString stringWithFormat:#"#pg=metro&view=%d", metroRank];
NSString *metroViewURL = [url stringByAppendingString:urlSuffix];
When the above code hits 'stringByAppendString' that is when I receive the error.
Convert it to a NSString first:
NSString *newURL = [[oldURL absoluteString] stringByAppendingString:#"#myhashtag"];
[NSURL fileURLWithPath:] does not return a NSString, but a NSURL. NSURL does not implement the stringByAppendingString selector. You can use URLByAppendingPathComponent: instead.
I'm trying to use this string inside this NSURL however I don't think its right and in turn giving me an ASI HTTP request failed error.
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:#"https://furious-ice-356.heroku.com/places/%#/reviews.xml",self.identifier]];
self.identifier returns (in most cases) an object of the type id. You cannot cast this object to a NSString*.
The only exception is the in 10.7 newly introduced identifier property of NSString* in the NSUserInterfaceItemIdentification protocol.
Can you elaborate your question so we can see what type self has?