sqlite3 데이터베이스가로드되어 액세스 할 수 있으며 다음 표의 내용을 NSComboBox에 넣으려고합니다. 그런 다음 다른 키의 기본 키베이스를 자동 선택합니다. 작동 매개 변수). (I가, 또는 그것을 고려하면 더 나은 연습 할 경우 이상적으로 코드 만 바인딩을 사용)프로그래밍 방식으로 키/값 (또는 바인딩)이있는 NSComboBox로드
(table) _backup_increment:
('incrementid', 'value', 'description')
(1, 'h', 'hours')
(2, 'd', 'days')
(3, 'w', 'weeks')
(4, 'm', 'months')
(5, 'y', 'years')
목표는 어떻게 든에 그래서 같은 NSComboBox에 해당 항목을로드 : 여기에 테이블 내용입니다 :
_______________________
key: [ (Select Value) |\/]
-----------------------
key:1 | h (hours) |
key:2 | d (days) |
key:3 | w (weeks) | (* auto select this one as the default for now)
key:4 | m (months) |
key:5 | y (years) |
-----------------------
어느 시점에서 incrementid, value 및 description의 속성으로 3 개의 노출 된 인스턴스 변수가있는 BackupIncrement 클래스를 만들었습니다. NSMutableArray를로드하고 프로그래밍 방식으로 데이터 소스로 연결하려고 시도했지만 작동하지 못하는 것 같습니다. 여기 내 코드는 내가 객체와 가변 배열을 가지고 노는 한 경우 지금까지 볼 수 있습니다 :
-(void)doAddItemsTocmbDefaultBackupIncrement {
const char* chrSQLSelect = "SELECT * FROM _backup_increments";
sqlite3_stmt* compiledSQL;
if (sqlite3_prepare_v2(claAppDelegate.sl3Database, chrSQLSelect, -1, &compiledSQL, NULL) == SQLITE_OK) {
while (sqlite3_step(compiledSQL) == SQLITE_ROW) {
BackupIncrement* bi = [[BackupIncrement alloc]
initWithintIncrementId:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledSQL, 0)]
AndstrIncrementValue:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledSQL, 1)]
AndstrIncrementDescription:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledSQL, 2)]];
//[cmbDefaultBackupIncrement addItemWithObjectValue:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledSQL, 1)]];
[cmbDefaultBackupIncrement addItemWithObjectValue:bi];
[marBackupIncrement addObject:bi];
// NSLog(@"%ld: %@(%@)",
// (long)[[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledSQL, 0)] integerValue],
// [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledSQL, 1)],
// [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledSQL, 2)]);
// NSLog(@"===========");
}
for (id obj in marBackupIncrement)
NSLog(@"obj: %@", [obj valueForKey:@"intIncrementId"]);
[cmbDefaultBackupIncrement reloadData];
//NSLog(@"What? %@", marBackupIncrement);
}
}
그래서 그래 - 프로그래밍이 일을하거나 XCode5에 바인딩 어떤 도움을 주시면 감사하겠습니다! 감사!