2013-07-24 2 views
0

나는 아이폰 프로그래밍을 시작하기 때문에 더 일반적인 질문이다.데이터베이스 경로를 변수로 저장하는 위치는 어디입니까?

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *docsPath = [paths objectAtIndex:0]; 
     NSString *path1 = [docsPath stringByAppendingPathComponent:@"database.sqlite"]; 
     FMDatabase *db1 = [FMDatabase databaseWithPath:path1]; 

는 '글로벌'로 한 번 해당 경로를 저장하는 사용 방법은 무엇입니까 : 난 그냥 문서 폴더에 저장되어있는 데이터베이스의 경로 이제 여러 개의 전화 회선이 내 모든 뷰에서

변수, 전체 프로젝트에서 액세스 할 수 있습니까? .net 솔루션의 web.config와 같습니다.

+1

가장 쉬운 방법은 Windows의 ini 파일과 비교할 수있는 간단한 키 - 값 저장 인 NSUserDefaults 클래스입니다. –

+0

.pch 파일에 언제든지 저장할 수 있으므로 기본적으로 전체 프로젝트에서 액세스 할 수 있습니다. – limon

+0

여러 가지 방법으로 데이터베이스에 대한 액세스를 캡슐화하는 관리자 개체를 만드는 것이 어떨까요? 이 클래스는 전체 응용 프로그램에서 고유하고 중앙 집중식 액세스를 제공하는 단일 항목이 될 수 있습니다. –

답변

0

위에 정의 된 FMDataBase 개체를 반환하는 일부 클래스에서 정적 메서드를 만듭니다.

Class Aclass; 

+(FMDataBase)database{ 
//do your stuff here, make sure to return the database object. 
} 

데이터베이스를 통해 지금 접근 :

[Aclass database]; 

"Aclass.h을"# import를 할

또한 Aclass.m에서 클래스 변수를 만들 수 있습니다 및 초기화 잊지 마세요 먼저 클래스 메소드를 사용하여 액세스하십시오. 이 예제처럼 : 형식에 대한

Global Property in Objective C

죄송합니다.

+0

이 접근 방식은 "전역 변수"유형의 메커니즘이므로 개인적으로이 접근 방식을 권장하지 않습니다. 나는 싱글 톤 패턴을 사용하는 것에 대해 논쟁 할 것이다. –

관련 문제