plist 파일에서 데이터를 읽으려고했습니다. 이 내가 cellForRowAtIndexPath
plist 파일을 읽고 UItableView를 채우는 방법은 무엇입니까?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
NSString *currentTermsName = [termKeys objectAtIndex :[indexPath row]];
[[cell textLabel] setText:currentTermsName];
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
detail = [terms objectAtIndex:indexPath.row];
NSLog(@" bombs %@",terms[@"Bomb Threats"]);
return cell;
}
에서 세부 사항을 액세스하고 볼 didload에 내가
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *myfile = [[NSBundle mainBundle]
pathForResource:@"terms" ofType:@"plist"];
terms = [[NSDictionary alloc] initWithContentsOfFile:myfile];
termKeys = [terms allKeys];
}
이 어떻게
@property (nonatomic, strong) NSArray *terms;
@property (nonatomic, strong) NSArray *termKeys;//this is just a array to keep track
@property (nonatomic, strong) NSString *detail;
이는
|term|detail(string)|
내 속성을 구성하는 방법입니다
액세스 es는 값을 저장하지만 각 객체에 대해 동일한 것을 저장합니다. plist에 5 개의 다른 레코드가 있다고 말하도록합니다. 세부 사항을 인쇄하면 동일한 레코드가 5 번 표시됩니다. http://pastebin.com/bxAjJzHp이
목표는에 세부 정보를 전달하는 것입니다 : 여기
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"detailsegue" sender:self];
}
내 사전입니다 : 세부가 설정되면
가 나는 마침내
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"detailsegue"]){
TermsDetailViewController *controller = (TermsDetailViewController *)segue.destinationViewController;
controller.detailTerm = detail;
}
}
및 detialView에 전달 Master/Detail 샘플 프로젝트와 같은 detailviewcontroller.
감사합니다. 해결책은 예외를 던지고 있습니다. -' [NSArrayM objectForKey :] : 인스턴스로 전송 된 인식 할 수없는 선택자 0xaa55a40' 문제가 될 수 있습니다. – meda
@meda 코드에서 한 줄을 복사 했으므로 그것은 무언가 다른 것입니다. 'objectForKey :'의 호출은'terms'를 지시합니다. 이것은'NSArray'가 아니라'NSDictionary'입니다. 오류가 수정 된 코드에서 비롯된 것이고 예외로 인해 열 수있는 기회가없는 새보기 컨트롤러의 코드에서 발생하지 않았습니까? – dasblinkenlight
이것은 내 첫 번째 앱이므로, 몇 가지 실수가있을 수 있습니다. 무엇을 조언합니까? – meda