error with label.text and NSNumber - iphone

I would like to do this:
I have a dictionary like this:
[myMutableDictionary setValue:myNSNumber forKey:#"myKey"];
myNSNumber is an NSNumber.
myCell.label.text = [self.myMutableDictionary objectForkey#"myKey"];
I have an error when I assign the number stored in my dictionary to my label in myCell.
The error is:
je suis la 2011-05-02 15:01:01.264 []
-[NSCFNumber isEqualToString:]: unrecognized selector sent to instance
0x225d00 2011-05-02 15:01:01.319 []
*** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason:
'-[NSCFNumber isEqualToString:]:
unrecognized selector sent to instance
0x225d00'

NSNumber is not an NSString and the text of the label needs to set to an NSString.
NSNumber *num = (NSNumber*)[self.myMutableDictionnary objectForkey#"myKey"];
myCell.label.text = [num stringValue];

Here you can do it by 2 ways
first is myCell.label.text = [[self.myMutableDictionnary objectForkey#"myKey"] stringValue];
second is myCell.label.text = [NSString stringWithFormat:#"%d",[self.myMutableDictionnary objectForkey#"myKey"]] ;

Related

exception 'NSInvalidArgumentException':-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x752c670 [duplicate]

This question already has an answer here:
SBJson Execptions after parsing (__NSArrayM objectForKey:)
(1 answer)
Closed 9 years ago.
I use sbjson to parse json,
this is the Json I'm trying to parse :
{"R":"0","S":"","T":"","M":[{"C00":"2013-08-16 17:35:03"}]}
and this is my code:
NSString *response = [self post:#"9903" content:payload state:#""];
NSDictionary *dict = [response JSONValue];
NSString *result = [dict objectForKey:#"R"];
NSLog(#"result=%#",result);
if ([#"0" isEqualToString:result]) {
NSDictionary *msg = [dict objectForKey:#"M"];
NSString *C00 = [msg objectForKey:#"C00"];//here the exception Statement
NSString *tokenString = [NSString stringWithFormat:#"%#",C00];
NSLog(#"tokenString%#",tokenString);
return tokenString;
}else {
return nil;
}
the exception log:
2013-08-16 17:45:44.902 VEP[4731:c07] -[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x7250300
2013-08-16 17:45:44.903 VEP[4731:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x7250300'
what's wrong? thanks for your help!
Because your key 'M:' contain array of dictionary not only dictionary. So, write it as a,
NSDictionary *msg = [[dict objectForKey:#"M"] objectAtIndex:0];

NSInvalidArgumentException', reason: '-[__NSArrayM name]: unrecognized selector sent to instance 0x75786f0'

CellData *cellData = [self.tableElements objectAtIndex:indexPath.row];
NSLog(#"name is %#",[self.tableElements objectAtIndex:1]);
cell.lbl.text = cellData.name;
here am getting the error when i able to access my NSObject class variables.
self.tableElements is an array with elements parsed.
cellData is not what you think it is, you think it is a CellData object but it is actually an NSArray, double check what self.tableElements is holding.

confused as how to use componentsSeparatedByString on iphone

after nsXml pasring value of my NSMutable array AB
=\n\n\n\thttp://xyz.com/uploads/resto_6298__20091209#1621_250.JPG\n\thttp://xyz.com/uploads/resto_6298__200912099_2_250.JPG\n"
now i am doing this to make this url working
NSString *sw=AB;
NSArray *strings = [sw componentsSeparatedByString: #"\n\t"];
NSLog(#"what I have %#",strings);
but my app always crash and i am getting this error
[NSCFArray componentsSeparatedByString:]: unrecognized selector sent to instance 0x1b28b0
2010-10-05 10:17:31.382 Wat2Eat[2311:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFArray componentsSeparatedByString:]: unrecognized selector sent to instance 0x1b28b0'
how to parse this AB so that i can extract exact URL
NSString *sw=AB;
AB is an NSMutableArray?
the compiler should print a warning if you try to do this. You tried to assign an NSArray to an NSString. This will not work.
Did you mean NSString *sw = [AB objectAtIndex:foo]; ?

NSCFArray length]: error, array regex

StringReply = [[NSString alloc] initWithData:dataReply encoding:NSUTF8StringEncoding];
//Regex Out Artist Name
//NSString *regEx = ;
NSArray *iTunesAristName = [stringReply componentsMatchedByRegex: #"(?<=artistname\":\")([^<]+)(?=\")"];
if ([iTunesAristName isEqual:#""]) {
NSLog(#"Something has messed up");
//Regex Out Song Name
}else{
NSLog(iTunesAristName);
}
NSLog(iTunesAristName);
[stringReply release];
I just keep getting this error ?
2010-09-29 21:15:16.406 [2073:207] *** -[NSCFArray length]: unrecognized selector sent to instance 0x4b0b800
2010-09-29 21:15:16.406 [2073:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFArray length]: unrecognized selector sent to instance 0x4b0b800'
2010-09-29 21:15:16.407 [2073:207] Stack: (
please help its driving me crazy
The first argument to NSLog is supposed to be a format string. You're passing an NSArray. When the function tries to treat your array as a string, you get that error. Instead, use NSLog(#"%#", iTunesAristName);.
Chuck has answered your question, but I've noticed something else that is problematic.
NSArray is an array, not a string, so [iTunesArtistName isEqual:#""] will never return true, because they are different classes. Even if iTunesArtistName was a string, it should be compared using the isEqualToString: method, not isEqual:.
If you want to extract only the artist's name, you might be able to do this:
NSArray *matches = [stringReply componentsMatchedByRegex: #"(?<=artistname\":\")([^<]+)(?=\")"];
if ([matches count] == 0)
{
NSLog(#"Could not extract the artist name");
}
else
{
NSString *iTunesArtistName = [matches objectAtIndex:0];
NSLog(#"Artist name: %#", iTunesArtistName);
}
I see you're using RegexKitLite, make sure you import libicucore.dylib, i was getting the same error until i imported that library.

NSDictionary objectForKey throws Exception

I've built an XML parser in Objective-C and the message objectForKey throws an NSException but I don't know why.
aPicture = [[Picture alloc] init];
aPicture.pictureID = [[attributeDict objectForKey:#"id"] integerValue];
Here is the message of the exception that i don't understand:
2010-08-09 21:27:32.223 rh[6375:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Picture setPictureID:]: unrecognized selector sent to instance 0x592e0b0'
After a long search i got my mistake...
I have forgotton to synthezise the pictureID selector.
....