0

我开始从事 iOS 开发。几天来我一直在寻找解决方案,但我无法得到它。我得到以下代码:

@interface SAProfileViewController : UITableViewController {
    @public NSNumber *userId;
}

    @property (weak, nonatomic) IBOutlet UIView *awesomeProfileHeader;

    @property (nonatomic, assign) NSNumber *userId;

@end

如您所见,我正在声明我的财产,然后我这样做:

@implementation SAProfileViewController

@synthesize userId = _userId;

...

在另一个 ViewController 上,我导入 SAPProfileViewController。

#import "SAProfileViewController.h"
...

-(void)goToUserProfile :(id) sender
{
   UITapGestureRecognizer *gesture = (UITapGestureRecognizer *) sender;

   SAProfileViewController *controller = [[SAProfileViewController alloc] init];

   controller.userId = gesture.view.tag; // << HERE THE ERROR APPEARS

   [self.navigationController pushViewController:controller animated:YES];
}

就是这样,这是我的代码,我收到以下错误:“在'SAProfileViewController *'类型的对象上找不到属性'userId'

提前致谢。

4

1 回答 1

2

您在属性类型上犯了一个错误。

改变

@property (nonatomic, assign) NSNumber *userId;

@property (nonatomic, retain) NSNumber *userId;

比你必须创建一个这样的NSNumber实例gesture.view.tag

controller.userId = [NSNumber numberWithInteger:gesture.view.tag];

或者您可以将您的 userId 更改NSIntegerNSNumber*

@property (nonatomic, assign) NSInteger userId;

(您也必须为 object 属性执行此操作userId

于 2013-02-09T22:08:59.620 回答