2013-03-22 47 views
1

我一直在搞这个天。我是新的xcode ..但只是不知道为什么我一直得到这个错误。我已经尝试过,并试图......我希望有人能帮助我。感谢您的时间'ImageEditorViewController'没有明显的@interface声明选择器'initWithImageAndSaveName:saveName:'

- (void)longPressAction:(UILongPressGestureRecognizer *)gestureRecognizer 
{ 
    CGPoint touchLocation = [gestureRecognizer locationInView:self.webView]; 

    NSString *javascript = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).src", touchLocation.x, touchLocation.y]; 
    NSString *imageUrl = [self.webView stringByEvaluatingJavaScriptFromString:javascript]; 

    NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageUrl]]; 
    UIImage *image = [UIImage imageWithData:imageData]; 

    // Show the editor 
    ImageEditorViewController *editView = [[ImageEditorViewController alloc] initWithImageAndSaveName:image saveName:[imageUrl lastPathComponent]]; 
    [self.navigationController pushViewController:editView animated:YES]; 
} 
+1

你在哪里申报和实施这些方法?做cmd-shift-f来搜索整个项目。 – 2013-03-22 05:39:13

回答

1

查找范围为“ImageEditorViewController” .h文件,看看它是否有“initWithImageAndSaveName:saveName:'”中就有一个方法声明。

还要确保将ImageEditorViewController.h文件导入到包含您的“longPressAction”方法的.m文件中。

0

它只是试图告诉你,没有该名称存在的方法。有两个地方可以编写该方法。一个会在@interface和@end之间的头文件中。另一个位置是放置在.m文件的@implementation和@end部分之间。我会推荐后者,除非你打算继承这个类并让另一个类使用这个方法。只是在@implementation中声明它,然后在你自己的方法中私下引用它,这只是一个更简洁的方法。

虽然基本上保持简洁,但该方法目前不存在,如果要使用它,则需要实现该方法。

+0

虽然如果它不在标题中,它将不会从他试图从中调用它的类中看到。他可能已经在.m中,只是没有它在头上。 – Jsdodgers 2013-03-22 05:20:14

+0

是的,我认为他是从ImageEditViewController类本身调用它。如果他正在导入ImageEditViewController并从中进行客户初始化,那么他肯定应该在.h中。 – AdamG 2013-03-22 05:22:34

+0

如果我为他们发布两个文件的完整代码,会有帮助吗?我不能表示我有多接近将我的头发拉出LOL。我一直在尝试这个好几天,在我的Dev退出之后,我放弃了99%完成的应用程序。如果有人愿意帮助我,我会更乐意将遥控器送入我的Mac。 – 2013-03-22 05:29:19

相关问题