2012-02-18 2 views
1

Я пытаюсь отправить изображение с помощью shareKit без использования actionSheet, но используя свою собственную кнопку сsharekit :: EXC_BAD_ACCESS @ shareItem

... 
// --- add the mail button ------------------------------------ 
UIButton *buttonMail = [UIButton buttonWithType:UIButtonTypeCustom]; 
buttonMail.frame = CGRectMake(0,0, btnW, btnH); 
[buttonMail setImage:[UIImage imageNamed:@"btn_mail.png"] forState:UIControlStateNormal]; 
[buttonMail addTarget:self action:@selector(sendPerMailEvent:) forControlEvents:UIControlEventTouchUpInside]; 
... 

     // the sharekit image object 
     item = [SHKItem image:image title:@"Name of the image" ]; 
     item.text = @"some text..."; 
     [SHK setRootViewController:self.webView.window.rootViewController]; 
... 

и

-(void)sendPerMailEvent:(id)sender {  
    [SHKMail shareItem:item]; 
    [self closeScreenshotView]; 
} 

, но когда я нажимаю кнопка Xcode бросает мне "EXC_BAD_ACCESS" ошибка в первой строке shareItem():

+ (id)shareItem:(SHKItem *)i 
{ 
    [SHK pushOnFavorites:[self sharerId] forType:i.shareType]; // -> EXC_BAD_ACCESS 

Я новичок в объективе-c, и приложение создано с использованием phonegap. thnx!

+0

Когда вы устанавливаете элемент в SHKItem, откуда идет изображение? Я не вижу его инициализированным до [SHKItem image: image title: @ "Название изображения"]; – xanderer

+0

изображение есть и ждет: 'UIImage * image = UIGraphicsGetImageFromCurrentImageContext(); ... image = [[UIImage alloc] initWithCGImage: image.CGImage scale: 1.0f orientation: UIImageOrientationLeft]; ' и в моем .h-файле я инициализировал элемент как' @interface MyPlugIn: PGPlugin {NSString * callbackID ; SHKItem * item; } @property (nonatomic, copy) NSString * callbackID; ' – headkit

ответ

0

теперь я узнал: мне нужно, чтобы добавить [item retain], вот это ,

1

Прежде всего, если вы слышите сигнал EXC_BAD_ACCESS, вы пытаетесь получить доступ к объекту после его удаления.

Проблема в том, что вы не инициализируете объект &, он выпускается до того, как он вам понадобится.

Попробуйте это:

SHKItem* item = [SHKItem alloc] init] 
[item seTitle:@"Name of the image"]; 

и посмотреть ли вы до сих пор получить эту проблему.

В будущем, если вы получаете EXC_BAD_ACCESS попробуйте включить на окружающую среду NSZombieEnabled link here

Во-вторых. Вы можете переопределить метод dealloc класса, который дает вам, что вы EXC_BAD_ACCESS и распечатать трассировку стека, чтобы показать вам, что deallocating его с помощью:

NSLog(@"I've been dealloced by: %@",[NSThread callStackSymbols]); 
+0

, но в моем .h-файле я инициализировал элемент как' @interface MyPlugIn: PGPlugin { NSString * callbackID; SHKItem * item; } @property (неатомный, копия) NSString * callbackID; '. это было неправильно? – headkit

+0

не работает ... :-( – headkit

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