int x = 5;
int t = 6;
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:#"books.book", #"og:type",
#"www.goodreads.com", #"og:url",
#"Snow Crash", #"og:title",
#"978-3-16-148410-0",#"books:isbn",
#"http://en.wikipedia.org/wiki/File:Snowcrash.jpg", #"og:image",
#"www.google.com",#"og:audio:url",
#"www.facebook.com",#"al:windows_universal:url",
#"www.facebook.com",#"al:windows_phone:url",
#"www.facebook.com",#"al:windows:url",
#"www.facebook.com",#"al:iphone:url",
#"www.facebook.com",#"al:ipad:url",
x,#"books:rating:value",
t,#"books:rating:scale",
#"In reality, Hiro Protagonist delivers pizza for Uncle Enzo’s CosoNostra Pizza Inc., but in the Metaverse he’s a warrior prince. Plunging headlong into the enigma of a new computer virus that’s striking down hackers everywhere, he races along the neon-lit streets on a search-and-destroy mission for the shadowy virtual villain threatening to bring about infocalypse. Snow Crash is a mind-altering romp through a future America so bizarre, so outrageous…you’ll recognize it immediately.", #"og:description",
#"Science Fiction",#"books:genre",
#"eu_es",#"books:language:locale",
#[#"en_us",#"ca_es",#"cs_cz"],#"books:language:alternate",nil];
As you can see above I'm trying to create a Dictionary, however whenever i run the code i get error like this.
2014-06-11 23:50:50.338 TestApp[8374:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSDictionary dictionaryWithObjectsAndKeys:]: second object of each pair must be non-nil. Or, did you forget to nil-terminate your parameter list?'
*** First throw call stack:
(
0 CoreFoundation 0x00000001019ef495 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010174e99e objc_exception_throw + 43
2 CoreFoundation 0x00000001019d27e3 +[NSDictionary dictionaryWithObjectsAndKeys:] + 1043
3 TestApp 0x000000010000724d -[CYCViewController postBooks:] + 1021
4 UIKit 0x00000001002fcf06 -[UIApplication sendAction:to:from:forEvent:] + 80
5 UIKit 0x00000001002fceb4 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 17
6 UIKit 0x00000001003d9880 -[UIControl _sendActionsForEvents:withEvent:] + 203
7 UIKit 0x00000001003d8dc0 -[UIControl touchesEnded:withEvent:] + 530
8 UIKit 0x0000000100333d05 -[UIWindow _sendTouchesForEvent:] + 701
9 UIKit 0x00000001003346e4 -[UIWindow sendEvent:] + 925
10 UIKit 0x000000010030c29a -[UIApplication sendEvent:] + 211
11 UIKit 0x00000001002f9aed _UIApplicationHandleEventQueue + 9579
12 CoreFoundation 0x000000010197ed21 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
13 CoreFoundation 0x000000010197e5f2 __CFRunLoopDoSources0 + 242
14 CoreFoundation 0x000000010199a46f __CFRunLoopRun + 767
15 CoreFoundation 0x0000000101999d83 CFRunLoopRunSpecific + 467
16 GraphicsServices 0x0000000103b66f04 GSEventRunModal + 161
17 UIKit 0x00000001002fbe33 UIApplicationMain + 1010
18 TestApp 0x0000000100008153 main + 115
19 libdyld.dylib 0x00000001020875fd start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
I've followed solutions by adding NILbut still doesn't work. Everything is well placed. I checked and checked.
The values which can be nil in your dictionary are x and t. The above error says the object can't be nil, you can't put nil in place of an object of a key in a dictionary, instead you can try to put #"" or even you can supply [NSNull null].
Update
As you are trying to put
int x = 5;
int t = 6;
the above values are non-object values, a dictionary requires object, try put.
[NSNumber numberWithInt:x]
[NSNumber numberWithInt:t]
Related
The first view controller of my project crashed when segue'd to from another view controller - but not when it loads. I get this error message:
2016-01-05 20:06:33.836 collaboration[48812:1788623] -[collaboration.createAccountViewController loginExisting:]: unrecognized selector sent to instance 0x796cc950
2016-01-05 20:06:33.849 collaboration[48812:1788623] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[collaboration.createAccountViewController loginExisting:]: unrecognized selector sent to instance 0x796cc950'
*** First throw call stack:
(
0 CoreFoundation 0x00396a14 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x022c5e02 objc_exception_throw + 50
2 CoreFoundation 0x0039fd63 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x002dd6bd ___forwarding___ + 1037
4 CoreFoundation 0x002dd28e _CF_forwarding_prep_0 + 14
5 libobjc.A.dylib 0x022da0b5 -[NSObject performSelector:withObject:withObject:] + 84
6 UIKit 0x00df7b79 -[UIApplication sendAction:to:from:forEvent:] + 118
7 UIKit 0x00df7af8 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64
8 UIKit 0x00f978f8 -[UIControl sendAction:to:forEvent:] + 79
9 UIKit 0x00f97c78 -[UIControl _sendActionsForEvents:withEvent:] + 408
10 UIKit 0x00f96c7e -[UIControl touchesEnded:withEvent:] + 714
11 UIKit 0x00e74182 -[UIWindow _sendTouchesForEvent:] + 1095
12 UIKit 0x00e75220 -[UIWindow sendEvent:] + 1159
13 UIKit 0x00e19f93 -[UIApplication sendEvent:] + 266
14 UIKit 0x00def668 _UIApplicationHandleEventQueue + 7802
15 CoreFoundation 0x002b06ff __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
16 CoreFoundation 0x002a638b __CFRunLoopDoSources0 + 523
17 CoreFoundation 0x002a57a8 __CFRunLoopRun + 1032
18 CoreFoundation 0x002a50e6 CFRunLoopRunSpecific + 470
19 CoreFoundation 0x002a4efb CFRunLoopRunInMode + 123
20 GraphicsServices 0x07075664 GSEventRunModal + 192
21 GraphicsServices 0x070754a1 GSEventRun + 104
22 UIKit 0x00df5bfa UIApplicationMain + 160
23 collaboration 0x00085a3c main + 140
24 libdyld.dylib 0x039bca21 start + 1
25 ??? 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
As you can see, it cites the variable 'loginExisting' as the issue, however loginExisting is not a variable on in any of my scripts (it was before but has since been removes). How can I 'refresh' XCode so that it forgets about the absent variable? I have tried restarting my machine and cleaning XCode but have had not success.
Thank you for your help.
Go to your storyboard that's crashing and right click the yellow icon at the top of the ViewController.
After right clicking, look towards the bottom where it says "Received actions" and delete all of the actions pertaining to the loginExisting method.
This is one of many possible culprits, but this tends to be the most common.
EDIT: It's also possible that you have a property (IBOutlet) connected to the storyboard that no longer exists which will throw an error.
I am getting the following error while joining a array of attributed strings.
2014-12-14 12:57:22.280 Matchismo[57752:60b] -[NSConcreteAttributedString _encodingCantBeStoredInEightBitCFString]: unrecognized selector sent to instance 0x8e81e20
2014-12-14 12:57:22.322 Matchismo[57752:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteAttributedString _encodingCantBeStoredInEightBitCFString]: unrecognized selector sent to instance 0x8e81e20'
*** First throw call stack:
(
0 CoreFoundation 0x017fa1e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x015798e5 objc_exception_throw + 44
2 CoreFoundation 0x01897243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x017ea50b ___forwarding___ + 1019
4 CoreFoundation 0x017ea0ee _CF_forwarding_prep_0 + 14
5 CoreFoundation 0x0177e4e6 CFStringAppend + 566
6 CoreFoundation 0x017ebf04 -[NSArray componentsJoinedByString:] + 532
7 Matchismo 0x00004d59 -[CardGameViewController updateTextLabel] + 345
8 Matchismo 0x00005334 -[CardGameViewController updateUI] + 1396
9 Matchismo 0x00004bdd -[CardGameViewController touchCard:] + 253
10 libobjc.A.dylib 0x0158b880 -[NSObject performSelector:withObject:withObject:] + 77
11 UIKit 0x0023b3b9 -[UIApplication sendAction:to:from:forEvent:] + 108
12 UIKit 0x0023b345 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61
13 UIKit 0x0033cbd1 -[UIControl sendAction:to:forEvent:] + 66
14 UIKit 0x0033cfc6 -[UIControl _sendActionsForEvents:withEvent:] + 577
15 UIKit 0x0033c243 -[UIControl touchesEnded:withEvent:] + 641
16 UIKit 0x0027addd -[UIWindow _sendTouchesForEvent:] + 852
17 UIKit 0x0027b9d1 -[UIWindow sendEvent:] + 1117
18 UIKit 0x0024d5f2 -[UIApplication sendEvent:] + 242
19 UIKit 0x00237353 _UIApplicationHandleEventQueue + 11455
20 CoreFoundation 0x0178377f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
21 CoreFoundation 0x0178310b __CFRunLoopDoSources0 + 235
22 CoreFoundation 0x017a01ae __CFRunLoopRun + 910
23 CoreFoundation 0x0179f9d3 CFRunLoopRunSpecific + 467
24 CoreFoundation 0x0179f7eb CFRunLoopRunInMode + 123
25 GraphicsServices 0x037ee5ee GSEventRunModal + 192
26 GraphicsServices 0x037ee42b GSEventRun + 104
27 UIKit 0x00239f9b UIApplicationMain + 1225
28 Matchismo 0x00008d5d main + 141
29 libdyld.dylib 0x01e41701 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
Here is my code:
self.textLabel.text = [myArray componentsJoinedByString:#","];
I understand that the attributed strings that have shading and what not cannot be stored in a NSString. What should be the correct code.
Attaching a screenshot of what kind of data the NSAttributed strings hold. They hold the circles/squares/triangles that you see in the image.
If you want to append new string inside attributed string you can directly use appendAttributedString method. But it will always add at the end of attributed string.
If your requirement is to add in the middle of your attributed string and you want to add "," in each word of your attributed string with the shading attributes as well. So in this case you need to first convert your attributed string into string and then you need to store your words in array and then you need to iterate the words from array and convert that string into attributed string with your attributes and then use appendAttributedString with ",". Like that you can implement the same.
I am having an app in which I am passing some data between viewControllers with NSUserDefaults.
This is the code below I am using.
[[NSUserDefaults standardUserDefaults]setObject:selectedLists forKey:UserID];
Where selectedLists is NSMutableArray and UserID is NSString.
This code works fine until ios7 and xCode5.
Since I have updated xCode6 and now I am using ios8, my app works fine with xCode 6 and ios 7.1 but the app crashes when I run the app in ios8 devices with the error below.
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x7a027060'
I just don't understand what is the problem here.
If anyone has faced this problem with ios8 then please help me.
Thanks in advance.
Value of selectedLists
{
CardFace = Word;
ImportFlag = Import;
ListID = 1;
ListName = "Adjectives - Appearance";
QuizBy = Definition;
UserID = 1;
}
and UserId is 1.
EDITED
*** First throw call stack:
(
0 CoreFoundation 0x06a24df6 __exceptionPreprocess + 182
1 libobjc.A.dylib 0x03ac8a97 objc_exception_throw + 44
2 CoreFoundation 0x06a2ca75 -[NSObject(NSObject) doesNotRecognizeSelector:] + 277
3 CoreFoundation 0x069759c7 ___forwarding___ + 1047
4 CoreFoundation 0x0697558e _CF_forwarding_prep_0 + 14
5 CoreFoundation 0x068df30f CFStringGetLength + 143
6 CoreFoundation 0x069de510 _CFPrefsEncodeKeyValuePairIntoMessage + 64
7 CoreFoundation 0x06a275cf -[CFPrefsPlistSource sendMessageSettingValue:forKey:] + 111
8 CoreFoundation 0x06954f3a -[CFPrefsPlistSource alreadylocked_setValue:forKey:] + 250
9 CoreFoundation 0x06954e22 -[CFPrefsSource setValue:forKey:] + 82
10 CoreFoundation 0x06954dc3 ___CFPreferencesSetValueWithContainer_block_invoke + 51
11 CoreFoundation 0x0690ef0a +[CFPrefsSource withSourceForIdentifier:user:byHost:container:perform:] + 1274
12 CoreFoundation 0x06954d61 _CFPreferencesSetValueWithContainer + 225
13 CoreFoundation 0x06a0aa62 _CFPreferencesSetAppValueWithContainer + 66
14 Foundation 0x0347f53f -[NSUserDefaults(NSUserDefaults) setObject:forKey:] + 59
15 Foundation 0x0353eeba -[NSUserDefaults(NSKeyValueCoding) setValue:forKey:] + 68
16 Vocab 0x000eaecc Vocab + 720588
17 libobjc.A.dylib 0x03ade7cd -[NSObject performSelector:withObject:withObject:] + 84
18 UIKit 0x022a079d -[UIApplication sendAction:to:from:forEvent:] + 99
19 UIKit 0x022a072f -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64
20 UIKit 0x023d3a16 -[UIControl sendAction:to:forEvent:] + 69
21 UIKit 0x023d3e33 -[UIControl _sendActionsForEvents:withEvent:] + 598
22 UIKit 0x023d309d -[UIControl touchesEnded:withEvent:] + 660
23 UIKit 0x022f0aba -[UIWindow _sendTouchesForEvent:] + 874
24 UIKit 0x022f1595 -[UIWindow sendEvent:] + 791
25 UIKit 0x022b6aa9 -[UIApplication sendEvent:] + 242
26 UIKit 0x022c68de _UIApplicationHandleEventFromQueueEvent + 20690
27 UIKit 0x0229b079 _UIApplicationHandleEventQueue + 2206
28 CoreFoundation 0x069487bf __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
29 CoreFoundation 0x0693e2cd __CFRunLoopDoSources0 + 253
30 CoreFoundation 0x0693d828 __CFRunLoopRun + 952
31 CoreFoundation 0x0693d1ab CFRunLoopRunSpecific + 443
32 CoreFoundation 0x0693cfdb CFRunLoopRunInMode + 123
33 GraphicsServices 0x0436424f GSEventRunModal + 192
34 GraphicsServices 0x0436408c GSEventRun + 104
35 UIKit 0x0229ee16 UIApplicationMain + 1526
36 Vocab 0x0004c9bc Vocab + 72124
37 libdyld.dylib 0x03ee6ac9 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Edited
On my tableview's didselect method...
UserID = [[users objectAtIndex:indexPath.row] valueForKey:#"UserID"];
where users is an array.
You should check the UserID type because crash is not related with changing NSArray to NSMutableArray.
You must be confusing NSNumber with NSString on your userID:
Change your code and instead of userID use the variable userIDString
NSString userIDString;
//If UserID is class of NSNumber turn its value to NSString
if ([UserID isKindOfClass:[NSNumber class]])
{
userIDString = [UserID stringValue];
}
else
userIDString = UserID ;
During runtime UserId is probably of type NSNumber, even if in your code it is typed NSString.
Check how UserId is created. Use the debugger to check the runtime type.
The newly posted code shows that your retrieve the UserId from the users array which probably consists of dictionaries. In those dictionaries there's a value for the key UserID. It depends on how the array of dictionaries is created (json deserialization?) but it seems that the type of object referred to by the UserID key is a number type, not a string. So all you have to do is convert this number into a string:
UserID = [[[users objectAtIndex:indexPath.row] valueForKey:#"UserID"] stringValue];
Now your key is always a string.
Try to encode your data in NSData and save it in NSUserDefaults and retrieved back, once needed. Have a look at this thread and this one.
Should not use NSUSerdefault to keep a collection of custom objects.
You should save them using NSkeyedUnarchiver/NSkeyedarchiver.
Ref: NSCoding.
I think can't store NSMutableArrays in NSUserDefaults since iOS8 (according to different posts). Try casting it into an array before (or create a new one).
Like this for example :
NSArray *arr = [NSArray arrayWithArray:selectedLists];
And store arr in NSUserDefaults.
Attempting to remove an object at a NSMutableArray causes a crash:
2014-03-07 18:58:03.755 HomeWork Pro +[12637:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI removeObjectAtIndex:]: unrecognized selector sent to instance 0xa2f4c20'
remove object code:
[hwArray removeObjectAtIndex:self.indexPath.row];
This only happens if I do it with self.indexPath.row, if I do it with a number it functions normally. I know the self.indexPath.row is not nil, I've NSlogged it to be sure and it turnde right. After doing that I do
[table reloadData]
to reload the UITableView data and the methods.
Any clue on what's the issue here?
Call stack
*** First throw call stack:
(
0 CoreFoundation 0x017aa5e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x0152d8b6 objc_exception_throw + 44
2 CoreFoundation 0x01847903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x0179a90b ___forwarding___ + 1019
4 CoreFoundation 0x0179a4ee _CF_forwarding_prep_0 + 14
5 HomeWork Pro + 0x00006c88 -[HomeWork SelfDelete] + 216
6 HomeWork Pro + 0x0000711a -[HomeWork done:] + 618
7 libobjc.A.dylib 0x0153f874 -[NSObject performSelector:withObject:withObject:] + 77
8 UIKit 0x0029d0c2 -[UIApplication sendAction:to:from:forEvent:] + 108
9 UIKit 0x0029d04e -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61
10 UIKit 0x003950c1 -[UIControl sendAction:to:forEvent:] + 66
11 UIKit 0x00395484 -[UIControl _sendActionsForEvents:withEvent:] + 577
12 UIKit 0x00394733 -[UIControl touchesEnded:withEvent:] + 641
13 UIKit 0x002da51d -[UIWindow _sendTouchesForEvent:] + 852
14 UIKit 0x002db184 -[UIWindow sendEvent:] + 1232
15 UIKit 0x002aee86 -[UIApplication sendEvent:] + 242
16 UIKit 0x0029918f _UIApplicationHandleEventQueue + 11421
17 CoreFoundation 0x0173383f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
18 CoreFoundation 0x017331cb __CFRunLoopDoSources0 + 235
19 CoreFoundation 0x0175029e __CFRunLoopRun + 910
20 CoreFoundation 0x0174fac3 CFRunLoopRunSpecific + 467
21 CoreFoundation 0x0174f8db CFRunLoopRunInMode + 123
22 GraphicsServices 0x023349e2 GSEventRunModal + 192
23 GraphicsServices 0x02334809 GSEventRun + 104
24 UIKit 0x0029bd3b UIApplicationMain + 1225
25 HomeWork Pro + 0x00008bad main + 141
26 libdyld.dylib 0x02c8a70d start + 1
27 ??? 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
It looks to me like the crash message you posted and your stack trace do not match. The stack trace shows an "unrecognized selector" crash in the making, but the crash message shows that you were attempting to insert a nil object into an array.
Neither of those things matches the line of code that you posted. (removing an object from an array.) I guess you could get an unrecognized selector error from the line of source you posted if the array wasn't really a mutable array...
EDIT:
Based on your updated question, it's clear. Your array is not actually a mutable array even though you think it is.
Post the code that creates the array.
If you're copying it somewhere, look at that code carefully. If you're loading it from a plist or an archive, be aware that mutable arrays come back as immutable when you read them back in.
What you have is an immutable NSArray. What you want is an NSMutableArray, which actually does implement removeObjectAtIndex:. Make sure your array isn't getting replaced with an immutable version at some point.
my application runs fine in my simulator but whenever i install it in the ipad
it receives SIGABRT and dies
2011-07-05 16:23:59.575 slots2[11008:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSMutableArray insertObject:atIndex:]: attempt to insert nil object at 0'
*** Call stack at first throw:
(
0 CoreFoundation 0x3398964f __exceptionPreprocess + 114
1 libobjc.A.dylib 0x321d5c5d objc_exception_throw + 24
2 CoreFoundation 0x338f1efd -[__NSArrayM insertObject:atIndex:] + 472
3 CoreFoundation 0x338f1d1b -[__NSArrayM addObject:] + 34
4 slots2 0x00005215 -[slots2ViewController viewDidLoad] + 420
5 UIKit 0x3485ef0f -[UIViewController view] + 110
6 slots2 0x00002d31 -[slots2AppDelegate application:didFinishLaunchingWithOptions:] + 92
7 UIKit 0x3485d821 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 772
8 UIKit 0x34857b65 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 272
9 UIKit 0x3482c7d7 -[UIApplication handleEvent:withNewEvent:] + 1114
10 UIKit 0x3482c215 -[UIApplication sendEvent:] + 44
11 UIKit 0x3482bc53 _UIApplicationHandleEvent + 5090
12 GraphicsServices 0x33bcde77 PurpleEventCallback + 666
13 CoreFoundation 0x33960a97 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 26
14 CoreFoundation 0x3396283f __CFRunLoopDoSource1 + 166
15 CoreFoundation 0x3396360d __CFRunLoopRun + 520
16 CoreFoundation 0x338f3ec3 CFRunLoopRunSpecific + 230
17 CoreFoundation 0x338f3dcb CFRunLoopRunInMode + 58
18 UIKit 0x34856d49 -[UIApplication _run] + 372
19 UIKit 0x34854807 UIApplicationMain + 670
20 slots2 0x00002c91 main + 88
21 slots2 0x00002c34 start + 40
)
terminate called after throwing an instance of 'NSException'
Program received signal: “SIGABRT”.
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.3.1 (8G4)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib (file not found).
(gdb)
but i m sure all files are there cuz same thing runs in simulator
the follwing array is the array which may be the problem
NSString *SubDir = [NSString stringWithFormat:#"/R/%d",Theme];
for(int i = 0;i<11;i++)
[SpinAnimationArray addObject:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:#"blur%d",i] ofType:#"png" inDirectory:SubDir]]];
in slots2ViewController viewDidLoad
u have an array and u were trying to add object which has wrong index.
and checkout
blur0 - blur10 png is copied and existing in ur target