xcode无法识别@property,但它是正确的

时间:2013-09-03 13:32:30

标签: ios objective-c xcode

Xcode无法识别详细控制器中的@property

ViewController2的.m文件:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showDetail"])
    {
        NSIndexPath *selectedIndexPath = [[self.collectionView indexPathsForSelectedItems] objectAtIndex:0];

        // load the image.

        NSString *imageNameToLoad = [NSString stringWithFormat:@"%d", selectedIndexPath.row];
        NSString *pathToImage = [[NSBundle mainBundle] pathForResource:imageNameToLoad ofType:@"JPG"];
        UIImage *image2 = [[UIImage alloc] initWithContentsOfFile:pathToImage];

       Detail_ViewController_Biffy *detailViewController = [segue destinationViewController];
    Detail_ViewController_Biffy.**image = image;**  <--- fails [property 'image'not found on object of type 'detail_ViewController_Biffy'
    }
}

.h文件详细信息

#import "ViewController.h"

@interface ViewController_Biffy : ViewController

@property (strong, nonatomic) IBOutlet UIImageView *image;

@end

尝试将导入ViewController.h更改为ViewController_Biffy.h,但会导致更多错误。

如果您需要更多信息,请与我们联系。

2 个答案:

答案 0 :(得分:2)

您正在尝试从类而不是实例获取属性。尝试

Detail_ViewController_Biffy *detailViewController = [segue destinationViewController];
detailViewController.image = image

你所说的类型还有detail_ViewController2,它不在你的代码中的任何地方

答案 1 :(得分:1)

首先:image是属性而非类方法,因此您需要访问它:

detailViewController.image = 

其他image中的prepareForSegue:sender:不存在。我猜您正在尝试将您的属性设置为image2,您可以创建几行。在这种情况下,失败的代码行看起来像:

detailViewController.image = image2;

通过类的实例访问所有属性。虽然您可能不知道它,但您已经在线上创建了一个detailViewController实例:

Detail_ViewController_Biffy *detailViewController = [segue destinationViewController];