1

在非结构或联合的情况下请求成员“兔子”

为什么我会收到此错误?我的线如下所示:

[self.bunny setFrame:CGRectMake(100, 100, 100, 100)];

声明的属性为:

@property (nonatomic, strong) UIImageView *bunny;

我用以下方式初始化它:

self.bunny = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 50, 50)];
self.bunny.image = [UIImage imageNamed:@"bunny.png"];

但是所有分配行都因该错误而出错。我究竟做错了什么?

4

3 回答 3

1

我认为您发布的代码没有任何问题。确保您没有无意中将该属性声明为 aUIImage而不是 a UIImageView。如果您还没有这样做,请发布来自 VC 的所有代码。

对于其他人的信息,在 Xcode 4.4 及更高版本中,属性会自动合成为property = _property.

行。从你发给我的项目中,有两个问题:

  1. 如果您不使用,则需要使用 retain 指令而不是 strong 声明该属性ARC(您发送给我的项目不是)

  2. 您已经将该类实例化为一个类别,您不能这样做并且拥有一个私有类变量。删除该类别名称,或声明

@property (nonatomic, retain) UIImageView *bunny;

而是在头文件中。

以及实现文件:

#import "SlidingTableViewCell.h"
#import "CellBack.h"
#import "CellFront.h"


@interface SlidingTableViewCell (ShitBalst)
-(void)springBack;
-(void)toggleTableScrolling:(BOOL)canScroll;
@end


@implementation SlidingTableViewCell
@synthesize bunny;

#define kDragDist 80.0

顺便说一句 - 这是我更新的项目: https ://dl.dropboxusercontent.com/u/3660978/TableViewCellSlider.zip

于 2013-04-13T01:45:19.327 回答
0

你合成过兔子吗?

@synthesize bunny = _bunny;

于 2013-04-12T23:49:22.487 回答
0

该对象self没有“兔子”。通常这是因为您尚未合成该属性。但是你会看到一个编译器警告。您是否忽略了警告?

于 2013-04-12T23:50:31.890 回答