Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

__NSCFString objectForKeyedSubscript: exception

I take datas from server. My app work fine in Sinulator and test device iPhone 4s, but one man have problem on iPod 4. He get exception:

-[__NSCFString objectForKeyedSubscript:]: unrecognized selector sent to instance 0x1d263a20

I cann't use this device so I write code to know where crash was.

 if (![dictionaryRest[@"compliments"] isEqual:[NSNull null]]) {
       NSMutableArray *array = [NSMutableArray new];
       NSMutableArray *firstArray = [NSMutableArray new];
       for (NSDictionary *dic in dictionaryRest[@"compliments"]) {
            Compliment *compl = [Compliment new];
            if (![dic[@"ID_promotions"] isEqual:[NSNull null]])
                compl.ID = [dic[@"ID_promotions"] integerValue];

So in last 2 strings this exception was. What the reason of this? So I understand that I need use

if ([dict objectForKey:[@"compliments"])

instead

if (![dict[@"compliments"] isEqual:[NSNull null]])

and in all another cases.

I test now and I have in my dictionary for ID: enter image description here

like image 230
user2213271 Avatar asked Dec 09 '22 15:12

user2213271


1 Answers

You have an NSString instance in your dictionary where you expect a dictionary.

Note that your "use this instead of that" has nothing to do with the problem.

like image 51
bbum Avatar answered Dec 11 '22 05:12

bbum