0

내 문제는 자식 뷰 (컨트롤러)에서 부모 뷰 (컨트롤러)로 객체를 되돌리고 싶습니다. 다음 아이 뷰가 삭제됩니다 때까지 (이 최대 poped하고 어떤 포인터가 그것을 보여줍니다 때문에)자식에서 부모로 객체 전달하기

parentView.someObject=objectFromChild;

모든 것이 괜찮 이에 아이 뷰로부터 전달 된 객체 : 나는이 같은 호출로 객체를 전달합니다 상위보기도 삭제됩니다. 누구든지 내 개체를 저장할 수 있도록하는 방법을 말해 줄 수 있습니까 (심지어 그것을 만든보기가 삭제됩니다)? NSString을 사용하면 메서드가 매우 잘 작동하지만 객체를 사용하면 항상 EXC_BAD_ACCESS가됩니다.

+0

대신에 'objectFromChild'를 빌드하고 parentView에'someObject'를 설정하는 대신. parentView의 메소드를 사용하여 객체를 만든 다음 필요에 따라'parentView.someObject' 점 표기법을 사용하여 자식에서 parentView의 객체에 액세스하십시오. – Kyle

+0

시도해 보았지만 childview가 삭제 되 자마자 자식이 만든 객체의 데이터 (더 이상 일부 문자열)에 더 이상 액세스 할 수 없습니다 .-) ( – user2173784

답변

0

부모 개체가 그것을 유지하는지 확인하십시오.

0

여기에는 몇 가지 문제점이 있으며 간단한 팁을 알려 드리겠습니다. 당신이 개체 또는 변수가 공공 재산이되도록, 부모에게 아이에서 위쪽으로 객체를 전달하여 자식 클래스를 설계하려면 데이터
전달

. 그런 다음 다른 개체 (은 자식을 소유 한 Parent 개체와 비슷 함)가 해당 속성에 액세스 할 수 있습니다. 데이터 살아
을 유지

보통 EXC_BAD_ACCESS 개체가 이미 시스템에 의해 삭제 된 것을 의미한다. 속성 선언에 'strong'을 설정하여 객체에 응답하려는 시스템에 알려 주면 EXC_BAD_ACCESS 문제가 해결됩니다.

아주 간단한 부모/자식 데이터 관계를 구현하고 데이터를 유지하는 방법에 대한 예제는 다음 코드를 참조하십시오.

//****** Child.h 

@interface Child : NSObject 

// Child has a public property 
// the 'strong' type qualifier will ensure it gets retained always 
// It's public by default if you declare it in .h like so: 
@property (strong, nonatomic) NSString *childString; 

@end 


//****** ParentViewController.h 
#import <UIKit/UIKit.h> 
#import "Child.h" 

@interface ParentViewController : UIViewController 

@property (strong, nonatomic) Child *myChild; 

@end 



//****** ParentViewController.m 

@implementation ParentViewController 

@synthesize myChild; 

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    // create child object 
    self.myChild = [[Child alloc] init]; 

    // set child object (from parent in this example) 
    // You might do your owh setting in Child's init method 
    self.myChild.childString = @"Hello"; 

    // you can access your childs public property 
    NSLog(@"Child string = %@", self.myChild.childString; 
} 
+0

고마워요.하지만 이미 NSString을 사용하면 문제가 없습니다. 솔루션에서 하위보기에 대한 포인터가 있으므로 하위보기가 솔루션에서 삭제되지 않고 var에 액세스 할 수 있습니다. – user2173784

+0

@ user2173784 하위 개체를 선언/삽입하는 코드를 게시하십시오. 요점은 Parent가 액세스하려고 시도하는 것이 었습니다. 더 많은 코드를 사용하면 사람들이 더 나은 상황을 통해 도움을받을 수 있습니다. – sean

관련 문제