2012-02-20 7 views
0

.xib 파일은 실제로 .xml 파일입니다 (주로 확장명을 바꾸고 텍스트 편집 및 대시 코드로 열 수 있음). 따라서 이론적으로는 xib을 xml로 열고 응용 프로그램에서 파싱 할 수 있어야합니다. 내 샘플 앱의 빌드 설정을 살펴본 결과, xib 파일이 컴파일되지 않고, 번들 리소스 복사임을 알게되었습니다. 좋은 데, 맞지?.xib 파일의 XML 텍스트 받기

NSString *string = [[NSBundle mainBundle]pathForResource:@"Empty" ofType:@"xib"]; 
    NSString *xmlString = [[NSString stringWithContentsOfFile:string encoding:NSUTF8StringEncoding error:nil] retain]; 
    NSLog(@"%@", xmlString); 
    [textView setText:xmlString]; 

이 NSLog의 (널) xmlStringstring 모두 : 나는 시도하고 이러한 방법으로 자신의 텍스트를받을 때 파일이 나에게 (NULL) 문자열을주고있다. 그래서 다른 복사 번들 리소스와 함께 노력하고 생각, 그래서 나는이에 string 변경 :

NSString *string = [[NSBundle mainBundle]pathForResource:@"InfoPlist" ofType:@"strings"]; 

과 완벽한 파일 경로를 기록! 그러나 xmlString 여전히 기록됩니다 (null).

그럼, 오류 코드를 점점 시도하고, 나는이있어 :

그것은 제가 그들이 어딘가에 읽기 (.xib 파일과 함께 무대 뒤에서 계속 몇 가지 추가적인 컴파일이 있다고 생각합니다
The operation couldn’t be completed. (Cocoa error 258.) 

컴파일러에 의해 닙으로 바뀌어) 읽을 수 없게하거나 접근 할 수 없도록 만듭니다. 하지만 .xib 파일을 읽고 쓸 수있는 것으로 알고있는 응용 프로그램이 있습니다 (Interface).

그럼 .xib 파일의 XML을 얻을 수 있도록 도와 줄 사람이 있습니까?

+0

인터페이스가 xib 파일을 읽거나/또는 내 보냅니다. – sch

+0

자신의 사이트에서 선전 된 기능입니다. – CodaFi

+0

글쎄, 나는 정말로 질문하지 말았어야했다. 비록 그들이 할지라도, 그들은 XML 인 xib 파일을 조작한다. – sch

답변

0

실제로 xib 파일은 nib 파일로 컴파일됩니다. 컴파일 된 .app에 Show Package Contents를 사용하면 xib 파일이 아닌 nib 파일이 표시됩니다.

편집 nib 파일 형식이 독점 형식 인 것처럼 보입니다. 그러나 나는 확실하지 않다.

양식 애플 documentation :

원래의 형식은 확장 .nib로 파일을 사용합니다. 이는 Interface Builder 사용자 인터페이스 객체 및 연결 표현을위한 독점적 인 바이너리 형식입니다.

편집 2 일부 option이 펜촉 파일로 XIB 파일을 컴파일에서 엑스 코드를 방지하기 위해이 것 같습니다. 그러나 나는 그 일을하는 방법에 대해 여전히 확신이 없으며 실제 결과는 무엇인가.

편집 3 Xcode에서 시도했습니다. Flatten Complied Xib 파일을 No로 설정하면 바이너리 파일에 nib 파일이 남아 있지만 이번에는 압축되지 않습니다. 이러한 nib 파일에는 xml 형식의 designtime.nib 파일이 있습니다.

+0

OK, 그 코코아 오류 261이 있습니다. 펜촉의 인코딩은 무엇입니까? – CodaFi

+0

@CodaFi - 앱을 컴파일하고 XML 형식으로 nib 파일을 유지할 수 있습니다. 수정 된 답변보기. – sch