2012-10-25 6 views
3

sqlite3_open 함수 (일반 C 함수)에서 sqlite3 제네릭 C 포인터의 주소를 인수로 보내야합니다.
예 :Objective-C에서 포인터 변수의 주소 가져 오기

//Valid code 
NSString * databaseFile; //Path of database file. (Objective-C Object) 
sqlite3 * db; //Pointer to hold the sqlite database. (C Pointer) 

sqlite3_open([databaseFile UTF8String], &db); //db is sent using the & operator. 

문제 나 객체 내부에서 * DB 변수를 얻을 필요가있다. 이 코드가 잘못 알고 있지만, 내가 필요한 것을 설명하는 방법입니다 :

//I need to get the address of the pointer 'database' from inside the Objective-C Object 'object'. 
//I hope one of those wrong lines explain what I want: 

sqlite3_open([databaseFile UTF8String], &[object database]); 
sqlite3_open([databaseFile UTF8String], [object &database]); 
sqlite3_open([databaseFile UTF8String], &(object->database); 

나는 누군가가 나를 undertands 희망 ... 하하 이 시간 내 주셔서 감사합니다! =)

+0

, 다음에 통과'& database'' – nielsbot

+0

"개체 내부에서"라고 말하면 속성을 참조하는 것을 의미한다고 가정합니다. 속성 참조는 getter 또는 setter 메서드 호출로 바뀝니다. 당신은 부동산의 "주소"를 취할 수 없습니다. –

+0

@nielsbot 예! 고맙습니다! 이것은 매우 간단했습니다 ... 나는이 문제를 너무 오랫동안 방황하여 간단히 반대 할 수 있다는 것을 잊어 버렸습니다. 내가 upvote 수 있도록 대답으로 설정하십시오. :) –

답변

1

MyClass 가정하면 다음과 같습니다

@interface MyClass : NSObject 
... 
@property (nonatomic) sqlite3 * database ; 
... 
@end 

코드는 다음과 같습니다

MyClass * object = ... ; 

sqlite3 * database ; 
sqlite3_open(..., & database) ; 

object.database = database ; 
당신은 아마 임시 VAR`database`을 설정할
+0

완벽한! 고맙습니다! = D –