我有一个声明 User 并包含以下变量的类:
(用户.h 文件):
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSString * unid;
(用户.m 文件):
@dynamic name;
@dynamic unid;
通过解析字符串,我有一个值数组。然后我想相应地设置值:
(ViewController.m 文件):
[user setName:[returned objectAtIndex:1]];
[user setUnid:[returned objectAtIndex:2]];
当它运行时,编译器给我以下错误:
unrecognized selector sent to instance
*** WebKit discarded an uncaught exception in the webView:shouldInsertText:replacingDOMRange:givenAction: delegate: <NSInvalidArgumentException> -[User setName:]: unrecognized selector sent to instance
当我注释掉 setName 行时,它工作正常。
然后我从返回的数组中查看了两个对象的类,它们都是:__NSCFString
然后我尝试了这段代码:
(ViewController.m 文件):
[user setName:[returned objectAtIndex:2]];
再次出现同样的错误。
如果他们都期望相同的输入,为什么相同的输入会在一种情况下失败并在另一种情况下成功?
谢谢。
编辑:
这个错误很奇怪,因为应用程序的这一部分不与任何 webviews 交互。这个返回的数组是从网页收集的字符串中解析出来的:
(ViewController.m 文件):
NSString *string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://url_goes_here.com" encoding:NSUTF8StringEncoding error:&error];
NSArray *returned = [returned componentsSeparatedByString:@"#"];
然而,unid 也是从这个数组中解析出来的,没有任何问题。