次のコードを使用して、クリックされた UISegmentedControl の現在のセグメントに基づく情報を UIButton と UITextField にロードしようとしていますが、SIGABRT クラッシュが発生しています。コードは次のとおりです。
- (void)updateInfo {
NSLog(@"count1:%d", [self.accounts count]);
[self saveInfo];
NSLog(@"count2:%d", [self.accounts count]);
NSDictionary *dict = [self.accounts objectAtIndex:0];
NSData *imageData = [dict objectForKey:@"ProfileImage"];
UIImage *imageProfile = [UIImage imageWithData:imageData];
[image1 setImage:imageProfile];
NSDictionary *dict2 = [self.accounts objectAtIndex:1];
NSData *imageData2 = [dict2 objectForKey:@"ProfileImage"];
UIImage *imageProfile2 = [UIImage imageWithData:imageData2];
[image2 setImage:imageProfile2];
if ([self.accounts objectAtIndex:accountSC.selectedSegmentIndex] != nil) {
NSDictionary *dict = [self.accounts objectAtIndex:accountSC.selectedSegmentIndex];
//NSString *name = [dict objectForKey:@"Name"];
NSString *name = [accountSC titleForSegmentAtIndex:accountSC.selectedSegmentIndex];
[Name setText:name];
NSData *imageData = [dict objectForKey:@"ProfileImage"];
UIImage *imageProfile = [UIImage imageWithData:imageData];
[pictureButton setImage:imageProfile forState:UIControlStateNormal];
}
else {
Name.text = nil;
[pictureButton setImage:nil forState:UIControlStateNormal];
}
}
コードの最初と 2 番目の大きなブロックは、さまざまな objectAtIndex 番号に基づく UIImage を確認したかったため、一時的なものです。
コンソールのクラッシュ ログは次のとおりです。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString objectForKey:]: unrecognized selector sent to instance 0x2cc08'
これが起こる理由は何ですか?使用している他のコードを投稿する必要がありますか?
私は本当にこれについて助けが必要です、私は私の髪を引っ張っています!!!
Edit1:私はこのコードを使用していますが、isKindOfClass についても話していましたよね? とにかく、これはコードです:
NSDictionary *dict = [self.accounts objectAtIndex:1];
if ([dict isKindOfClass:[NSDictionary class]]) {
NSLog(@"YES");
}
else {
NSLog(@"NO");
}
今テスト中...