Программа получила SIGABRT при использовании переменной, кроме NSLOG - PullRequest
0 голосов
/ 20 мая 2011

Эй, ребята, я получаю 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 iOS 4.3, Xcode 4.

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

Ответы [ 5 ]

3 голосов
/ 20 мая 2011

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

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

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

0 голосов
/ 20 мая 2011

NSString * string = [NSString stringWithFormat: @ "% @", self.refURLAsString];

здесь не нужно выделять

0 голосов
/ 20 мая 2011

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

0 голосов
/ 20 мая 2011

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

0 голосов
/ 20 мая 2011

попробуйте

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