2011-05-20 3 views
0

Эй, ребята, я получаю в SIGABRT при попытке использовать переменную экземпляра для чего-нибудь, но в NSLog:Программа получила SIGABRT при использовании переменной, кроме NSLog

//Class_X.H 
@interface MeldingController : UIViewController 
{ 
    NSString *refURLAsString; 
} 
@property (nonatomic, retain) NSString *refURLAsString; 

//Class_X.M 
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    self.refURLAsString = [info objectForKey:UIImagePickerControllerReferenceURL]; 
    NSLog(@"%@",self.refURLAsString);//Successfully outputs the ReferenceURL string 
} 

-(void)function_abc 
{ 
    NSLog(@"%@",self.refURLAsString);//Successfully outputs the ReferenceURL string 
    NSURL *URL = [NSURL URLWithString:self.refURLAsString]; //SIGABRT 
    //Or even trying to make another string using refUrlAsString 
    NSString *string = [[NSString alloc]init]; 
    string = self.refURLAsString;//SIGABRT 
} 

iPhone Simulator IOS версии 4.3, Xcode 4.

Любые идеи кто-нибудь? веселит.

ответ

3

Ваш refURLAsString имеет тип NSString *, но [info objectForKey:UIImagePickerControllerReferenceURL] должен возвращать NSURL * экземпляр according to the docs. Вы хотите:

self.refURLAsString = [[info objectForKey:UIImagePickerControllerReferenceURL] absoluteString]; 

Причина, почему NSLog работает потому, что он вызывает метод description по каждому объекту, который должен быть напечатан через %@ последовательности, и что делает возвращает строку. Но refURLAsString указывает на NSURL вместо NSString, и это приводит к сбою [NSURL URLWithString:self.refURLAsString];.

+0

Да, вы в порядке. – Uxxish

0

попробовать этот

string =[refURLAsString copy]; 
0

Ваш код завинчивание refURLAsString. Я не могу сказать, как из опубликованного кода. Активируйте NSZombieEnabled.

0

Не уверен точно, Что проблема есть, но попробовать string = [NSString stringWithFormat:@"%@",self.refURLAsString]; и посмотреть, если он выходит из строя здесь

0

NSString * Строка = [NSString stringWithFormat: @ "% @", self.refURLAsString];

нет необходимости Alloc здесь

Смежные вопросы