2012-01-23 16 views
8

Yani, bu mümkün mü?Bir ARC uygulamasında ARC olmayan kütüphane var mı?

Ben birden çok kez bu hatayı alıyorum:

ARC forbids Objective-C objects in structs or unions 

Örneğin burada:

typedef struct { 
    BOOL _field1; 
    union { 
     struct { 
      id _field1; 
      id _field2; 
     } _field1; 
     GSEventRef _field2; 
    } _field2; 
} XXStruct_CKAdxD; 

cevap

29

Sen değil her dosya için derleyici seçeneklerine -fno-objc-arc eklemem gerekiyor/kullanamazsınız ARC. Xcode içinde bunu, hedefinizin 'Derleme Kaynakları' oluşturma aşamasından yaparsınız. Dosyaya çift tıklayın ve açılan kutuya -fno-objc-arc ekleyin.

+1

Ama yalnızca üstbilgileri var ve çerçevenin kaynağı değil – Tyilo

+0

Tamam ne demek istediğini anladım. Sanırım bu durumda kodunuzdaki ARC'yi yapı tanımının içinde bir nesne olamayacağından ('id _field1', id _field2') bu kütüphaneyle ara yüz oluşturmayacaksınız. Daha önce karşılaşmadığım için biraz avlayacağım. – mattjgalloway

+3

Nevermind. Çerçeveye ihtiyaç duyulmayan kodu ARC olmayan bir sınıfta tamamladım ve '-fno-objc-arc 'bayrağını derleyiciye ayarladım. Ardından, sınıf yöntemlerini ARC kodunun içinden aradım. İyi çalışıyor gibi görünüyor! – Tyilo