-1
if ([UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType =
UIImagePickerControllerSourceTypeCamera;
imagePicker.allowsEditing = NO;
self.imagePicker = imagePicker;
[self presentViewController:self.imagePicker animated:YES completion:nil];
}
不能再简单了。然而,当这个代码运行时,我得到这个:UIImagePickerController在iOS7上崩溃
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'
Argh。我做错了什么?
编辑:这不是我的代码导致异常
-[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'
*** First throw call stack:
(0x184a53100 0x190f5c1fc 0x18495d37c 0x18495d1c4 0x187a963a8 0x187a26efc 0x18c40dd8c 0x187a16fe0 0x187608258 0x187602e20 0x187602cd8 0x187602560 0x187602304 0x1875fbc38 0x184a13858 0x184a10ae0 0x184a10e6c 0x184951dd0 0x18a639c0c 0x187a82fc4 0x100077f24 0x19154faa0)
libc++abi.dylib: terminating with uncaught exception of type NSException
EDIT 2:将异常断点详细
libobjc.A.dylib`objc_exception_throw:
0x190f5c1c0: stp fp, lr, [sp, #-16]!
0x190f5c1c4: add fp, sp, 0
0x190f5c1c8: stp x20, x19, [sp, #-16]!
0x190f5c1cc: stp x22, x21, [sp, #-16]!
0x190f5c1d0: stp x24, x23, [sp, #-16]!
0x190f5c1d4: sub sp, sp, #4032
0x190f5c1d8: mov x20, x0
0x190f5c1dc: orr x0, sp, #0x20
0x190f5c1e0: bl 0x190f778e4 ; symbol stub for: +[NSObject isSubclassOfClass:]
0x190f5c1e4: mov x19, x0
0x190f5c1e8: adrp x8, 13401
0x190f5c1ec: add x8, x8, 1552
0x190f5c1f0: ldr x8, [x8, 0]
0x190f5c1f4: mov x0, x20
0x190f5c1f8: blr x8
0x190f5c1fc: mov x20, x0
0x190f5c200: adrp x8, 13400
0x190f5c204: add x8, x8, 2616
0x190f5c208: ldr x1, [x8, 0]
0x190f5c20c: bl 0x190f6c1c0 ; objc_msgSend
0x190f5c210: str x20, [x19]
0x190f5c214: adrp x8, 13401
0x190f5c218: add x8, x8, 1928
0x190f5c21c: add x8, x8, 16
0x190f5c220: mov x21, x19
0x190f5c224: str x8, [x21, #8]!
0x190f5c228: mov x0, x20
0x190f5c22c: bl 0x190f5a540 ; object_getClassName
0x190f5c230: movz x8, #0
0x190f5c234: str x0, [x19, #16]
0x190f5c238: cbz x20, 0x190f5c264 ; objc_exception_throw + 164
0x190f5c23c: cmn x20, #0
0x190f5c240: b.ge 0x190f5c25c ; objc_exception_throw + 156
0x190f5c244: lsr x8, x20, #57
0x190f5c248: and x8, x8, #0x78
0x190f5c24c: adrp x9, 13401
0x190f5c250: add x9, x9, 2144
0x190f5c254: ldr x8, [x9, x8]
0x190f5c258: b 0x190f5c264 ; objc_exception_throw + 164
0x190f5c25c: ldr x8, [x20, 0]
0x190f5c260: and x8, x8, #0x1fffffff8
0x190f5c264: str x8, [x19, #24]
0x190f5c268: adrp x22, 13410
0x190f5c26c: add x22, x22, 2742
0x190f5c270: ldrb w8, [x22]
0x190f5c274: cbz w8, 0x190f5c294 ; objc_exception_throw + 212
0x190f5c278: mov x0, x20
0x190f5c27c: bl 0x190f5a540 ; object_getClassName
0x190f5c280: stp x20, x0, [sp, #8]
0x190f5c284: str x19, [sp]
0x190f5c288: adrp x0, 28
0x190f5c28c: add x0, x0, 2824
0x190f5c290: bl 0x190f5bd54 ; _objc_inform
0x190f5c294: adrp x8, 13410
0x190f5c298: add x8, x8, 2743
0x190f5c29c: ldrb w8, [x8]
0x190f5c2a0: cbz w8, 0x190f5c2fc ; objc_exception_throw + 316
0x190f5c2a4: ldrb w8, [x22]
0x190f5c2a8: cbnz w8, 0x190f5c2c8 ; objc_exception_throw + 264
0x190f5c2ac: mov x0, x20
0x190f5c2b0: bl 0x190f5a540 ; object_getClassName
0x190f5c2b4: stp x20, x0, [sp, #8]
0x190f5c2b8: str x19, [sp]
0x190f5c2bc: adrp x0, 28
0x190f5c2c0: add x0, x0, 2824
0x190f5c2c4: bl 0x190f5bd54 ; _objc_inform
0x190f5c2c8: add x22, sp, 32
0x190f5c2cc: movz w1, #500
0x190f5c2d0: mov x0, x22
0x190f5c2d4: bl 0x190f77a64 ; symbol stub for: +[NSObject resolveInstanceMethod:]
0x190f5c2d8: mov x23, x0
0x190f5c2dc: adrp x8, 13399
0x190f5c2e0: ldr x8, [x8, 5]
0x190f5c2e4: ldr x0, [x8, 0]
0x190f5c2e8: bl 0x190f77ae8 ; symbol stub for: -[NSObject methodSignatureForSelector:]
0x190f5c2ec: mov x2, x0
0x190f5c2f0: mov x0, x22
0x190f5c2f4: mov x1, x23
0x190f5c2f8: bl 0x190f77a7c ; symbol stub for: -[NSObject doesNotRecognizeSelector:]
0x190f5c2fc: mov x0, x20
0x190f5c300: nop
0x190f5c304: adrp x2, 0
0x190f5c308: add x2, x2, 792
0x190f5c30c: mov x0, x19
0x190f5c310: mov x1, x21
0x190f5c314: bl 0x190f77920 ; symbol stub for: +[NSObject conformsToProtocol:]
哪行代码导致崩溃的代码?你发布的任何内容都与创建“NSDictionary”无关。 – rmaddy 2014-09-06 03:26:09
这不是你发布的代码。除了您没有将'imagePicker'赋予您所呈现的'self.imagePicker'属性(我认为这是一个错字)之外,该片段应该可以工作。 – ChrisH 2014-09-06 03:39:44
我添加了异常断点细节。它不是特别照亮。 – fansonly 2014-09-06 03:55:19