2010-11-21 16 views
-1

Aşağıdaki örnekte, MyViewController tarafından saklanan görünüm denetleyicisine bir sayıyı ileten bir ekrana dokunulduğunda, bir örnek çağrılır. Tek sorun, görüntüleme denetleyicisi, daha sonra başka bir yöntemde kullanmak istediğim için numarayı saklamıyor. Lütfen yardım et. Teşekkür ederim.Yöntemler aracılığıyla bilgi aktarma ve saklama

MyViewController.h

@class MyView; 

@interface ViewController : UIViewController { 
    int number; 
} 

-(void)assignNumber(int)sentNumber; 

@property int number; 

MyViewController.m [viewController assignNumber:5];

+0

5 numaranın depolanıp depolanmadığını belirlemek için kaç tane kontrol edin? –

cevap

1

@synthesize bildirmezseniz, viewController dahili öğelerinin dışından gelen numaraya erişemezsiniz. MyView.m'nin üstüne

eklemeyi deneyin; Bu setler ve alıcılar oluşturur. o zaman,

[viewController setNumber:5]; 

ile

[viewController assignNumber:5]; 

çağrıyı değiştirip viewController.number veya [viewController number] biriyle erişebilirsiniz.

+0

'@ synthesize' yalnızca derleyiciye bir özellik için erişim sağlayıcıları uygulamalarını söyler. Zaten sınıfın '@ interface' içinde (başlık dosyasında) özelliği bildirmiş olmalısınız ve * bu özelliği diğer sınıfların nesnelere açıkladığını * yapmış olmanız gerekir. Tersine, '@' arayüzünde mülkü (veya erişim yöntemlerini tek tek) belirttiğiniz sürece, istediğiniz gibi erişimcileri de uygulayabilirsiniz - derleyiciyi yapın ('sentezleyin) veya bunları kendiniz uygulayın; özelliği kullanan diğer nesnelerden farklı görünmez. –

0
Sen isteyebilirsiniz

dokundu TouchesBegin ile

-(void)loadView { 
    MyView *aView = [[MyView alloc] initWithFrame:wholescreen]; 
    self.view = aView; 
    [aView release]; 
} 

-(id)initWithNibName...... { 
    number = 0; 
} 

-(void)assignNumber:(int)sentNumber { 
    number = sentNumber; 
} 

MyView.h & MyView.m

Standart, @ Değişkeni nu sentezler ViewController uygulamanızda mber.

İlgili konular