xib파일은 문자열로 이루어진 xml파일임이 분명하지만 그냥 사용하지 않네..그냥 써도 될텐데...
iOS 가 나오기 전부터 사용되던 nib파일로 자동 컴파일 된 후 사용된다
속도가 좀 더 빠르기야 하겠다만...그냥 쓰지 ㅎㅎ
그리고 .bundle 에 넣어진 파일들은 컴파일 되지 않는다
.bundle 에 xib파일을 넣고 뷰 컨트롤러로 로드하면 읽어지지 않는 이유가 바로 이것!!
터미널에서 ibtool "$xibFileName.xib" --compile "$xibFileName.nib" 이렇게 입력해서 nib파일을 만들어 .bundle에 넣어두면 뷰컨트롤러의 - (id)initWithNibName:bundle: 을 이용할 수 있다
컴파일된 nib파일을 서버에 올려두고 런타임시에 불러오는것도 가능할 것 같다
=====
내용 추가
=====
서버에 올려두고 런타임시 불러오는거...된다 ㅎㅎ
웹서버에 올려두고
#define AppDir [NSSearchPathForDirectoriesInDomains(NSCachesDirectory , NSUserDomainMask, YES) objectAtIndex:0]
NSURL *nibUrl = [NSURL URLWithString:@"http://myserver.domain/myxib.nib"];
NSData *data = [NSData dataWithContentsOfURL:nibUrl];
[data writeToFile:[NSString stringWithFormat:@"%@/%@",AppDir,@"myxib.nib"] atomically:YES];
NSBundle *bundle = [NSBundle bundleWithPath:AppDir];
NSString *nibName = @"myxib";
MyViewController *myViewController = [[MyViewController alloc]initWithNibName:nibName bundle:bundle];
요래 하면 잘 불러와진다
적당히 버전관리를 하거나
네트웍 접속 가능할때 항상 업데이트 시키거나 등등
적당히 응용하면 되겠다