2017-01-17 8 views
1

응용 프로그램을 만들었으며 plist 파일에 저장된 URL에 액세스하려고합니다. 이 상태에서 나는 내용을 로그 아웃하려고합니다. 이전에 비슷한 질문을 한 적이 있음을 알고 있었지만, Item 0에 액세스하는 방법을 구체적으로 묻습니다. Item 0InternalViaSafari 안에 액세스하려고 시도하고 있습니다.이 메시지는 URLValidator 내부에 표시되고 그 다음은 Root 안에 있습니다. 내가 지금까지 가지고있는 코드는 다음과 같습니다 당신은 내가 아는 한이에 대한 그런 keyPath을 사용할 수 없습니다 plist fileObjective-C Plist의 특정 항목에 액세스

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"plist-file-name" ofType:@"plist"]; 
NSDictionary* plist = [NSDictionary dictionaryWithContentsOfFile:filePath]; 
NSString* name = [plist valueForKeyPath:@"URLValidator.InternalViaSafari"]; 
NSLog(name); 
+0

beter는 plist보다 nsuserdefalt를 사용합니다. – Arun

+0

여러 설정을 위해 여러 plists가 필요하기 때문에 불가능합니다. – DaveDavidson

답변

1

. InternalViaSafari은 (는) URLValidator이라는 사전의 재산이 아닙니다. 무엇보다 InternalViaSafariArray이 아니며, 귀하의 plist에 String이 (가) 있습니다. 당신이 뭔가를해야 할 것이 문자열을 얻기 위하여

는 :

여기 어떻게됩니까
NSArray *internalViaSafari = plist[@"URLValidator"][@"InternalViaSafari"]; 
NSString *name = internalViaSafari.firstObject; 

, 당신이 당신의 plist 사전에서 URLValidator 키의 값을 얻을 수 있다는 것입니다. 이 값은 Dictionary이며 (공유 한 plist 스크린 샷에 명확하게 표시되어 있음) InternalViaSafari 키 아래 값을 얻을 수 있습니다. 이 값은 차례로 Array이며, Strings이 요소입니다. 이 예제에서는이 배열에서 첫 번째 항목을 추출했습니다.

+0

이 '객체 ID_Nullable 객체에 찾을 수없는 firstObject 속성의 오류가 발생했습니다.' – DaveDavidson

+0

죄송합니다. 오타를 만들었습니다! 너무 빨라요. 최근에 Objective-C에서 문자열 리터럴 앞에'@ '접두사가 필요하다는 걸 잊었습니다. – Losiowaty

+0

probs가 없습니다. 편집을했습니다. :) – DaveDavidson