2012-04-13 3 views
0

Я получаю эту ошибку сборки на приложение IPad с помощью XCode4 с раскадровки:Ошибка сборки: Неопределенные символы для архитектуры i386?

Undefined symbols for architecture i386: "_OBJC_CLASS_$_SQLite", referenced from: objc-class-ref in EnterDataViewController.o

Я посмотрел везде, что я знаю в приложение, сделать чистый и заново построили все безрезультатно. Я не понимаю, о чем идет речь.

Что происходит и как его исправить?

UPDATE: здесь соответствующий код из EnterDataVewController.m

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
//-- set First Responder 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
- (BOOL) textFieldShouldReturn:(UITextField *)textField { 

    // for site data... 
    if(textField == txtSiteID) { 
     [txtSTA becomeFirstResponder]; 
     return true; 
    } 

    if(textField == txtSTA) { 
     [txtElev becomeFirstResponder]; 
     return true; 
    } 

    if(textField == txtElev) { 
     [txtSiteDesc becomeFirstResponder]; 
     return true; 
    } 

    if(txtSiteDesc.isFirstResponder) { 
     SQLite *db = [[SQLite alloc] init]; 
     [db saveSiteData:(UITextField *) txtSiteID sta:(UITextField *) txtSTA desc:(UITextField *) txtSiteDesc elev: (UITextField *) txtElev ]; 
     [txtSiteDesc resignFirstResponder]; 
     return true; 
    } 

    // for readings 
    if(textField == txtSTA1) { 
     [txtBS becomeFirstResponder]; 
     return true; 
    } 

    if(textField == txtBS) { 
     [txtFS becomeFirstResponder]; 
     return true; 
    } 

    if(textField == txtFS) { 
     [txtDesc becomeFirstResponder]; 
     return true; 
    } 

    // if(textField.isFirstResponder) { 
    if(textField == txtDesc) { 
     SQLite *db = [[SQLite alloc] init]; 
     [db saveReadings:txtSiteID sta:txtSTA1 bs:txtBS fs:txtFS desc:txtDesc]; 
     [txtDesc resignFirstResponder]; 
     return true; 
    } 

    return YES; 
} 

// //-- is this for txtDesc 
// if(txtDesc.isFirstResponder) { 
//  [txtDesc resignFirstResponder]; 
// } 
// 

NSString *databasePath; 
NSString *docsDir; 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
//-- save the site data 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
- (BOOL) saveSiteData { 


    // validate all fields 
    if(txtSiteID.text.length == 0 || txtSiteDesc.text.length == 0) { 
     [self Alert:@"Missing Site ID and/or Description" andData:@"Reqired fields"]; 
     return NO; 
    } 

    if(txtSTA.text.length == 0 || txtElev.text.length == 0) { 
     [self Alert:@"Missing Initial STA and/or Elevation" andData:@"Reqired fields"];   
     return NO; 
    } 

    // txtSiteDesc.text = txtSiteDesc.text.re <---------- remove single quotes TODO 

    // update d/b 
    SQLite *dbCode = [[SQLite alloc] init]; // instantiate slSQLite 
    [dbCode saveSiteData:txtSiteID sta:txtSTA desc:txtSiteDesc elev:txtElev]; // save site data 

    return YES; 
} 


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
//-- save the readings 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
- (void) saveReadings { 

    // update d/b 
    SQLite *dbCode = [[SQLite alloc] init]; // instantiate slSQLite 
    [dbCode saveReadings:txtSiteID sta:txtSTA1 bs:txtBS fs:txtFS desc:txtDesc]; 

    return; 
} 

ответ

1

I нашел проблему ... было два (2) экземпляра EnterDataVewController.m в отдельных каталогах в том же проекте. Я не знаю, почему это вызвало бы проблему, но когда я удалил второй экземпляр, он будет создан без каких-либо проблем (кроме обычных).

Спасибо всем за предложения. Я ценю ваше время.

0

ли SQLite своего собственного отдельного класса ... если так импортировать его ... если бы не попробовать импортирующую рамку CoreData в

+0

Да, ему просто нужно импортировать заголовок для этого класса. – GreyHands

+0

Да, это отдельный класс, и да, заголовок был импортирован. – SpokaneDude

+0

Вы ссылаетесь на libsqlite, добавив его в свой проект? – GreyHands

Смежные вопросы