NSUserDefaults 上的 EXC_BAD_ACCESS
我在 NSUserDefaults 上收到 EXC_BAD_ACCESS :
NSUserDefaults *pref = [NSUserDefaults standardUserDefaults];
[pref setObject:oldLogin forKey:@"login"];
[pref setObject:oldMotdepasse forKey:@"pass"];
[pref setObject:@"OK" forKey:@"opening"];
其中 oldLogin 和 oldMotdepasse 是 UITextField。
我以前没有遇到过这个错误,这很奇怪。该错误出现在第一个 setObject 上。
谢谢你读我!
编辑:现在我遇到了另一个错误:
-[NSCFString text]: unrecognized selector sent to instance 0x4b3b2d0
2012-01-16 10:32:02.601 emars[60602:b303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString text]: unrecognized selector sent to instance 0x4b3b2d0'
*** Call stack at first throw:
(
0 CoreFoundation 0x00fb75a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x0110b313 objc_exception_throw + 44
2 CoreFoundation 0x00fb90bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x00f28966 ___forwarding___ + 966
4 CoreFoundation 0x00f28522 _CF_forwarding_prep_0 + 50
5 emars 0x00008ddf -[ThirdViewController connectionDidFinishLoading:] + 932
6 Foundation 0x0006a112 -[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading] + 108
7 Foundation 0x0006a06b _NSURLConnectionDidFinishLoading + 133
编辑: 好的,我使用 oldLogin 作为 UITextfield。我只是将其类型更改为 NSString 并删除 .text...
I'm getting a EXC_BAD_ACCESS on NSUserDefaults :
NSUserDefaults *pref = [NSUserDefaults standardUserDefaults];
[pref setObject:oldLogin forKey:@"login"];
[pref setObject:oldMotdepasse forKey:@"pass"];
[pref setObject:@"OK" forKey:@"opening"];
Where oldLogin and oldMotdepasse are UITextField.
I didn't get this error before, it's very strange. The error appears on the first setObject.
Thanks to read me!
EDIT : now I've got another error argh :
-[NSCFString text]: unrecognized selector sent to instance 0x4b3b2d0
2012-01-16 10:32:02.601 emars[60602:b303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString text]: unrecognized selector sent to instance 0x4b3b2d0'
*** Call stack at first throw:
(
0 CoreFoundation 0x00fb75a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x0110b313 objc_exception_throw + 44
2 CoreFoundation 0x00fb90bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x00f28966 ___forwarding___ + 966
4 CoreFoundation 0x00f28522 _CF_forwarding_prep_0 + 50
5 emars 0x00008ddf -[ThirdViewController connectionDidFinishLoading:] + 932
6 Foundation 0x0006a112 -[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading] + 108
7 Foundation 0x0006a06b _NSURLConnectionDidFinishLoading + 133
EDIT :
Okay, I used oldLogin as a UITextfield. I just change its type to NSString and delete the .text...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你不能只是将 UITextField 放入 NSUserDefaults 中,这是行不通的。您必须从 UITextField 获取字符串值并将其放入 NSUserDefaults 中。
[prefs setObject:oldLogion.text forKey:@"login"]
You can't just put a UITextField into NSUserDefaults that won't work. You have to get the string value from the UITextField and put that into NSUserDefaults.
[prefs setObject:oldLogion.text forKey:@"login"]
您是否尝试将文本存储在文本字段中?如果是这样那么应该是
Are you trying to store the text in the text fields? If so then it should be
来自
NSUserDefault
文档。您正在尝试存储 UITextField.. 这是错误的.. 因此建议您插入
UITextField
的文本值,而不是存储整个对象。from
NSUserDefault
documentation.you are trying to store the UITextField.. which is wrong .. So would suggest you to insert the text values of
UITextField
instead storing the whole object.中需要修复两件事,
文本字段写入
oldMotdepasse.text
和oldLogin.text
最后也同步它
[pref一线同步]
例如:
There are Two things need to fix in this
for text Field write
oldMotdepasse.text
andoldLogin.text
At the end also synchnorize it
[pref synchronize]
E.g: