2011-12-02 19 views
10

Bir giriş ile UserModel.xcdatamodeld yarattı başarısız oldu: UserBase ve ben dosya ile bunun için sınıfları oluşturmak adı kimliği ve tipi Tamsayı 32. Bundan sonraXCode 4.2 NSManagedObject bağlam inşa

olduğu bir öznitelik eklendi -> new file-> UserBase.h ve .m'yi otomatik olarak oluşturan NSManagedOBject alt sınıfı. Benim denetleyicisi olarak

UserBase.h dosyasını ithal ve mülk oluşturma: mycontroller.m dosyasında

@property (nonatomic, retain) NSManagedObjectContext *userBaseObjectContext; 

ile

NSManagedObjectContext *userBaseObjectContext; 

userBaseObjectContext özelliği sentezlendiği ve DidLoad işlevinde Bu çalıştı :

UserBase *userObject=(UserBase *)[NSEntityDescription insertNewObjectForEntityForName:@"UserBase" inManagedObjectContext:userBaseObjectContext]; 
     [userObject setUserID:[NSNumber numberWithInt:42]]; 
     NSError *error; 
     if(![userBaseObjectContext save:&error]) 
     { 
      UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Application error" message:@"error" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:nil,nil]; 
      [alert show]; 
      [alert release]; 
     } 
     else 
      NSLog(@"not working..."); 

Projemi oluşturmaya çalıştığımda bunu anladım. rror:

Undefined symbols for architecture i386: 
"_OBJC_CLASS_$_NSEntityDescription", referenced from: 
    objc-class-ref in LoginController.o 
"_OBJC_METACLASS_$_NSManagedObject", referenced from: 
    _OBJC_METACLASS_$_UserBase in UserBase.o 
"_OBJC_CLASS_$_NSManagedObject", referenced from: 
    _OBJC_CLASS_$_UserBase in UserBase.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Bu ne anlama geliyor? http://mobile.tutsplus.com/tutorials/iphone/iphone-core-data/

+3

CoreData.framework'ı eklemeyi deneyin. – rjstelling

+0

Çalışıyor. Teşekkürler ... – mudlee

cevap

20

Tanımsız semboller genellikle bazı Çerçeve eksik olduğu anlamına:

Bu öğretici izledi. Çerçeveler, Uygulamanızda kullanabileceğiniz önceden derlenmiş sınıfların kütüphaneleridir.

XCode 4 bir çerçeve eklemek için:

  1. tıklayın sizin Projesi kökü (Blueprint simgesiyle sol üst köşesinde öğesi) üzerinde.
  2. Hedefinize tıklayın (Genelde soldaki “Kalemlerden oluşan bir simge” ile aynı Uygulama adı).
  3. Üst kısımdaki "Özet" sekmesine tıklayın, ardından aşağıya doğru kaydırın ... bölücüleri daraltın ve "iPad Dağıtım Bilgisi" altında "Bağlantılı Çerçeveler ve Kütüphaneler" bölümünü bulacaksınız (Aşağıdaki Şekil 1'e bakın).
  4. Bu listenin altındaki "+" düğmesini tıklayın.
  5. Açılır pencerede bir Çerçeve seçmeniz istenir, arama yapın ve bunu seçtiğinizde Ekle'yi tıklatın.

Ve işte bu! Söz konusu Çerçevede yer alan sınıflar, doğru #import'u yaptığınız sürece kodunuzda kullanılabilir.

Şekil 1:

enter image description here

projenizi korumak için ben Grubu "Çerçeveler" için yeni eklenen çerçeveyi sürüklemek için önerilerde bulunuruz emretti.

+3

Ayrıca ... "pch" dosyanıza '#import 'ekleyin – refaelos

3

Uyarı dosyasını projenize aktardıysanız, Hedef Üyelik'te işaretlenmiş onay kutusunun işaretlenmiş olduğundan emin olun! Aynı problem vardı ve kutuyu işaretledikten sonra hata kayboldu!

0

NSManagedObject Sınıfınızı projeden silmeye ve yeniden oluşturmaya çalışın. Bana yardımcı oldu;)