User を宣言し、これらの変数を含むクラスがあります。
(User.h ファイル):
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSString * unid;
(User.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 行をコメントアウトすると、正常に機能します。
次に、返された配列から 2 つのオブジェクトのクラスを調べたところ、どちらも次のようになりました。__NSCFString
次に、このコードを試しました:
(ViewController.m ファイル):
[user setName:[returned objectAtIndex:2]];
再び同じエラー。
両方が同じ入力を期待している場合、同じ入力がある場合に失敗し、別の場合に成功するのはなぜですか?
ありがとう。
編集:
アプリのこの部分は Web ビューと対話しないため、このエラーは奇妙です。この返された配列は、Web ページから収集された文字列から解析されます。
(ViewController.m ファイル):
NSString *string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://url_goes_here.com" encoding:NSUTF8StringEncoding error:&error];
NSArray *returned = [returned componentsSeparatedByString:@"#"];
ただし、unid もこの配列から問題なく解析されます。