2011-08-28 15 views
9

Programım düzgün çalışıyordu, ancak bir şey değiştirdim ve şu anda 48'in üzerinde hata var.Döngüler başvuru içe aktarılırken hata oluştu

Sanırım sorunu biliyorum, ama nasıl düzelteceğimi bilmiyorum. Tüm UIViewController s için türetmek üzere mViewBase adlı bir sınıf oluşturdum.

cakes2 adlı diğer görünüm denetleyicilerine gitmek için tüm görünümlerimin altında bir gezinme çubuğuna sahip olmaya karar verdim. Bu nedenle, kek2.h, mViewBase ve mViewBase içe aktarmalarını içe aktarır2.

Bunu, Objective-C'de yapabilmeniz gerekir. Ne yapabileceğimi bilen var mı?

Benim mViewBase.h dosyası:

#import <UIKit/UIKit.h> 
#import "Cakes2.h" 

@interface mViewBase : UIViewController { 
    UIView *mBackground; 
    UIView *mBackArrow; 
    UITextView *mTitle; 
    // Cakes2 *mCakes; 
} 

-(void) aSetTitle: (NSString *) NewTitle; 
-(IBAction) aBack: (id) tender; 
-(IBAction) aHome: (id) sender; 
-(IBAction) aCakes: (id) sender; 
-(IBAction) aCall: (id) sender; 
-(IBAction) aDirections: (id) sender; 
@end 

Benim Cakes2.h dosyası:

#import <UIKit/UIKit.h> 
#import "Gallery.h" 
#import "WebView.h" 
#import "mViewBase.h" // Circular reference! But I need it 

@interface Cakes2 : mViewBase <UITableViewDelegate, UITableViewDataSource> { 
    // Gallery *mGallery; 
    IBOutlet UITableView *mMenu; 
    // WebView *mWebView; 
} 
-(IBAction) aOpenWeb; 
@end 
+0

Benzer: http://stackoverflow.com/questions/1619075/possible-circular-reference-problem –

+0

sorunun bu olduğuna emin misin? Biraz önce yaptığım şakaya göre "#import yönergesi, dosyaların derleme başına bir kez alınmasını sağlar." Objektif-c. – Dogmatixed

cevap

19

Diğer üstbilgileri içe aktarma gereksinimini ortadan kaldırmak için başlık dosyalarınızdan birinde bir ileri bildirim kullanabilirsiniz.

@class Cakes2; 

Şimdi derleyici "Cakes2" bir sınıfı ifade etmesini bilen ve tüm Cakes2.h dosyasını içe gerekmez: Örneğin, mViewBase.h içinde, diyebilirsiniz.

+0

. .h dosyaları olabildiğince az dosya olarak dahil etmeyi ve dahil etmeyi, ileriye doğru bildirimleri seçmeyi tercih et. Bir başlık dosyası, sınıfın genel arayüzünü ortaya çıkarmak için tasarlanmıştır. – zaph

+5

Merhaba bu, başlık dosyasında @class'ı ve m dosyasını içeri aktardığım hile yaptı :) Teşekkürler, Ted –

0

Sana belki UITabBarController kullanmayı düşünmelisiniz düşünüyorum. Özellikle ekranın altındaki bir çubuktan birkaç görüntü denetleyicisini yönetmek için yapılır.

+0

Merhaba Yorumunuz için teşekkür ederim, bunun hakkında düşünüyordum, ama projem neredeyse bitti ve kodu yırtılamak istemiyordu. –

İlgili konular