2013-11-14 3 views
1

다음은 ios6에서 잘 작동하는 응용 프로그램에 오류가 발생했습니다.iOS7의 문제, iOS6의 문제

[__NSCFString frame]: unrecognized selector sent to instance 0xc075290 

나는 무엇이 잘못되었는지 알지 못합니다. 하지만 뭔가가 UINavigationController과 관련된 것으로 생각됩니다. 위를 참조하십시오. 미리 감사드립니다.

업데이트 : 좀비를 사용 설정하면이 오류가 발생합니다. 이 개체가이 속성을 가지고 있지 않기 때문에

[_UINavigationBarBackIndicatorView frame]: message sent to deallocated instance 0xc0fb860 

-(void)viewWillAppear:(BOOL)animated 
{ 
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isAcceptTerms"]) { 
    [adBannerView setDelegate:self]; 
    [adBannerView setHidden:NO]; 

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isBannerShown"]) //-ive logic is applied 
    { 
     [self.adBannerView setHidden:YES]; 
     [self.adBannerView setDelegate:nil]; 
    } 
} 
else 
{ 
    [adBannerView setDelegate:nil]; 
    [adBannerView setHidden:YES]; 
} 

[self.navigationController.navigationBar setHidden:NO]; 
NSMutableDictionary *dictTemp =[[sqlmessenger shared]fetchOrders]; 
int count=[[sqlmessenger shared] isuserdetails]; 

if (count>0) 
{ 
    [self updateCoordinate]; 
} 

NSArray *arrContorl = [self.navigationController.navigationBar subviews]; 
for(UIButton *btnTemp in arrContorl) 
{ 
    if([btnTemp isKindOfClass:[UIButton class]]) 
    { 
     [btnTemp removeFromSuperview]; 
    } 
}  

UIImageView *imgHeader= [[UIImageView alloc]initWithFrame:CGRectMake(0,0,320,44)]; 
[imgHeader setBackgroundColor:[UIColor clearColor]]; 
[imgHeader setImage:[UIImage imageNamed:@"setting.png"]]; 
[self.navigationController.navigationBar addSubview:imgHeader]; 

if(lblHeader) 
{ 
    lblHeader=nil ; 
} 

lblHeader = [[UILabel alloc]initWithFrame:CGRectMake(60,5,230,30)]; 
[lblHeader setBackgroundColor:[UIColor clearColor]]; 
[lblHeader setTextAlignment:UITextAlignmentLeft]; 
[lblHeader setTextColor:[UIColor whiteColor]]; 
[lblHeader setFont:[UIFont boldSystemFontOfSize:18.0]]; 
if([dictTemp count]==0 && contentView.hidden == FALSE) 
{ 
    [lblHeader setText:@"Terms of Service (EULA)"]; 
} 
else 
{ 
    [lblHeader setFrame:CGRectMake(110,5,200,30)]; 
    [lblHeader setFont:[UIFont boldSystemFontOfSize:20.0]]; 
    [lblHeader setText:@"Settings"]; 
} 

[self.navigationController.navigationBar addSubview:lblHeader]; 
} 
+2

그냥 제안 : 다음 번에 더 구체적인 질문을 찾으십시오. – katzenhut

+0

ARC를 사용하고 있습니까? – medvedNick

+0

@medvedNick 아니요 ARC를 사용하지 않습니다. – ios7

답변

2

물론, 당신은 허용되지 않는 NSString 객체의 frame 속성에 액세스하려고합니다.

자세한 내용을 입력 해보십시오. (크래시를 유발하는 코드를 추가하면 대개 크래시 스택이 도움이되지 않습니다.)

UPDATE : 아직도 무슨 일이 일어나고 있는지 확실하지, 당신은 실제 디버깅을 할 필요가 필요한 중단 점이 변수를 로그 식물, 그들은 내가 당신에게 당신이 시도 할 수있는 몇 가지를 줄 수있는 등 이 값을 확인 :

1. 내비게이션 막대에 하위보기를 왜 추가하지 않은가? 왼쪽 막대 버튼 항목에 대해

: 대신 같은 UINavigationItem의 다음 leftBarButtonItem을 UIViewController의 navigationItem 속성을 사용 할 수 있습니다

self.navigationController.navigationItem.hidesBackButton = YES; 
self.navigationItem.leftBarButtonItem = yourLeftBarButtonItem; 

그리고 (먼저 뒤로 버튼을 숨길 수 있는지 확인) 권리에 대한 하나 :

self.navigationItem.rightBarButtonItem = yourRightBarButtonItem; 

2. viewController가 나타날 때마다보기 및 레이블을 할당합니다. 비효율적입니다. 기억력과 시간면에서 모두. 대신, 한 번 할당하고 alpha 채널을 변경할 수 있습니다.

+0

업데이트 된 질문을 살펴보십시오. – ios7

+0

업데이트 된 답변 확인 –