Почему мои объекты еще живы? - PullRequest
0 голосов
/ 29 марта 2012

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

Мой заголовочный файл прилагается. Как я должен заниматься бизнесом здесь? Спасибо за совет / предложения.

FYI - это для ios5, разработанного с xcode 4.3. ARC включен.

** ИЗМЕНЕНИЯ / ДОПОЛНЕНИЯ **

  • Этот UIView - это то, что остается в живых даже после того, как я переключаюсь на совершенно другой View Controller (через раскадровку). Я подозреваю, что это сильная ссылка или ссылка, от которой нельзя отказаться?

  • Насколько я могу судить, это представление никогда не выпускается.

  • Я отслеживаю выделение ресурсов с помощью новых инструментов-> распределений => выберите цель-> устройство ios 5.1 => запись. И просто смотрю на график, когда я касаюсь.


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

@interface LoginView : UIView {
    NSString *loginEmail;
    NSString *loginPassword;
}

@property (nonatomic, weak) IBOutlet UIView *loginView1;
@property (nonatomic, weak) IBOutlet UIView *loginView2;
@property (nonatomic, weak) IBOutlet UIView *loginView3;
@property (nonatomic, weak) IBOutlet UIView *loginView4;

@property (nonatomic, weak) IBOutlet UIView *recoverView1;
@property (nonatomic, weak) IBOutlet UIView *recoverView2;

@property (nonatomic, weak) IBOutlet UIScrollView *loginSV;
@property (nonatomic, weak) IBOutlet UIScrollView *recoverSV;

@property (nonatomic, weak) IBOutlet ValidatedTextField *signInEmailInput;
@property (nonatomic, weak) IBOutlet ValidatedTextField *signInPassInput;
@property (nonatomic, weak) IBOutlet ValidatedTextField *createEmailInput;
@property (nonatomic, weak) IBOutlet ValidatedTextField *createFirstNameInput;
@property (nonatomic, weak) IBOutlet ValidatedTextField *createLastNameInput;
@property (nonatomic, weak) IBOutlet ValidatedTextField *passInput;
@property (nonatomic, weak) IBOutlet ValidatedTextField *rePassInput;
@property (nonatomic, weak) IBOutlet ValidatedTextField *recoverIDInput;

@property (nonatomic, weak) IBOutlet UIButton *signInBtn;
@property (nonatomic, weak) IBOutlet UIButton *forgotPassBtn;
@property (nonatomic, weak) IBOutlet UIButton *createAccountBtn;
@property (nonatomic, weak) IBOutlet UIButton *createBackBtn;
@property (nonatomic, weak) IBOutlet UIButton *createContinueBtn;
@property (nonatomic, weak) IBOutlet UIButton *passBackBtn;
@property (nonatomic, weak) IBOutlet UIButton *passContinueBtn;
@property (nonatomic, weak) IBOutlet UIButton *sumBackBtn;
@property (nonatomic, weak) IBOutlet UIButton *sumSubmitBtn;
@property (nonatomic, weak) IBOutlet UIButton *recoverBackBtn;
@property (nonatomic, weak) IBOutlet UIButton *recoverPassBtn;
@property (nonatomic, weak) IBOutlet UIButton *returnToSignInBtn;

@property (nonatomic, weak) IBOutlet UILabel *signInEmailError;
@property (nonatomic, weak) IBOutlet UILabel *createEmailError;
@property (nonatomic, weak) IBOutlet UILabel *passwordError;
@property (nonatomic, weak) IBOutlet UILabel *sumEmail;
@property (nonatomic, weak) IBOutlet UILabel *sumFirstName;
@property (nonatomic, weak) IBOutlet UILabel *sumLastName;
@property (nonatomic, weak) IBOutlet UILabel *sumPassword;
@property (nonatomic, weak) IBOutlet UILabel *emailedToTxt;

-(IBAction)signInTUI:(id)sender;
-(IBAction)forgotPassTUI:(id)sender;
-(IBAction)createAccountTUI:(id)sender;
-(IBAction)createBackTUI:(id)sender;
-(IBAction)createContinueTUI:(id)sender;
-(IBAction)passBackTUI:(id)sender;
-(IBAction)passContinueTUI:(id)sender;
-(IBAction)sumBackTUI:(id)sender;
-(IBAction)sumSubmitTUI:(id)sender;
-(IBAction)recoverBackTUI:(id)sender;
-(IBAction)recoverPassTUI:(id)sender;
-(IBAction)returnToSignInTUI:(id)sender;

@end

1 Ответ

3 голосов
/ 29 марта 2012

Этот UIView - это то, что остается в живых даже после того, как я переключаюсь на совершенно другой View Controller (через раскадровку).Я подозреваю, что это сильная ссылка или ссылка, от которой нельзя отказаться?

Я предполагаю, что здесь вы имеете в виду, что вы выдвигаете это как толчок в стек контроллера навигацииили вы представляете модально или что-то еще:

Это не обязательно должно быть освобождено, когда вы переходите на новый контроллер представления.Исходный контроллер представления, следовательно, его представление и, следовательно, ваше пользовательское представление, будут оставаться в живых до тех пор, пока UIKit не решит уничтожить его, потому что памяти становится мало.В этот момент ваш объект контроллера представления все еще будет оставаться живым, но его представление будет выгружено, и вы получите viewDidUnload.Только когда вы полностью удалите этот контроллер вида из любого контроллера навигации / контроллера вкладок / отклоните его, если он модальный, он будет полностью уничтожен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...