핵심 데이터가 이동하는 길이지만 학습 곡선이 가파릅니다. 당신은 그것을 배우기 위해 꽤 많은 시간을 제쳐 놓아야합니다.
plists로 작업하는 것이 훨씬 쉽고 아마도 충분할 수 있습니다. 이것들은 애플 특유의 XML 파일이며 아주 단순하게 구조화되어있다. Xcode에서 바로 편집 할 수 있으며 형식이 매우 투명합니다.
그러면 plist에서 한 번에 모든 데이터를로드하고 첫 번째 선택 항목에 따라 두 번째 선택 도구를 채울 수 있습니다.
JSON 파일을 사용할 수도 있습니다. 이것들은 훨씬 더 간단하고, 웹 프로그래머로서, 당신은 아마도 그것들에 익숙 할 것입니다.
몇 가지 힌트 :
귀하의 데이터는이 구조를 가져야한다 : 사전의 배열; 각 사전에는 브랜드의 키가 있고 다른 배열의 키는 모델 목록입니다. 이 하위 배열은 이름에 대한 키가있는 사전입니다 (응용 프로그램에서 필요하면 더 많이). 이제
NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
NSArray *data = [NSArray arrayWithContentsOfFile:path];
당신이 당신의 브랜드 이름 키를 가정하고이 같은 브랜드 (의 목록을 얻을 수 있습니다 "이름 :
당신은 다음과 같이"Data.plist "라는 PLIST 파일을로드 할 수 있습니다 (JSON은 아날로그입니다) ") :
NSArray *brands = [data valueForKeyPath:@"name"];
그리고 브랜드 차종의 목록 :
NSArray *models = [[[data filteredArrayUsingPredicate:[NSPredicate
predicateWithFormat:@"name = %@", @"Ford"]] objectAtIndex:0]
valueForKey:@"models"]);
이 첫 번째 파이의 선택에 반응하기 cker보기에서보기 컨트롤러가 선택기보기의 위임자인지 확인하고 pickerView:didSelectRow:inComponent:
을 무시하십시오.
을 할당하고 콜백 메소드에서 확인하여 위임 메소드에서 선택기를 구별 할 수 있습니다. 이 도움이
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>name</key>
<string>Ford</string>
<key>models</key>
<array>
<string>Mustang</string>
<string>Capri</string>
</array>
</dict>
<dict>
<key>name</key>
<string>VW</string>
<key>models</key>
<array>
<string>Polo</string>
<string>Golf</string>
</array>
</dict>
</array>
</plist>
희망 : 여기
는 PLIST의 strucure의 예입니다.
현재 회원님의 의견을 표시하십시오. .plist를 사용하고 첫 번째 선택을 기반으로 두 번째 선택기보기에 대한 데이터 소스 배열을 설정할 수있는 것처럼 들립니다. – Dustin
버튼을 클릭했을 때 (HTML의 선택 항목으로 사용) 표시되도록 설정된 두 개의 PickerView 만 있고 다른 곳을 클릭하면 숨겨집니다. 하지만 여전히 모든 모델을 같은 배열에 넣을 수 있습니까? 브랜드가 연결된 브랜드를 어떻게 알 수 있습니까? 내 말은 외래 키를 의미합니다 :) 나는 plist에 대해 아주 기본적인 것을 알고 있습니다. – Michael