iphone - 在 ViewController 上找不到属性

标签 iphone ios objective-c properties

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

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

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

    @property (nonatomic, assign) NSNumber *userId;

@end

如您所见,我正在申报我的属性(property),然后我这样做:

@implementation SAProfileViewController

@synthesize userId = _userId;

...

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

#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’

提前致谢。

最佳答案

您对属性类型做错了。

改变

@property (nonatomic, assign) NSNumber *userId;

@property (nonatomic, retain) NSNumber *userId;

你必须像这样创建 gesture.view.tagNSNumber 实例

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

或者您可以将 userId 更改为 NSInteger 而不是 NSNumber*

@property (nonatomic, assign) NSInteger userId;

(您也必须为对象属性 userId 执行此操作)

关于iphone - 在 ViewController 上找不到属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14792105/

相关文章:

iphone - 手势识别器由于某种原因无法在 iPhone 上工作

ios - 在 UITableView - Realm 中将结果转换为数据源列表时出错

objective-c - iPad Retina 显示器的 XCode 坐标

ios - YouTube 嵌入式播放器介绍

iOS:自定义后退按钮过渡动画

iphone - 首次启动时重置核心数据

iOS/iPhone - 快速拍摄或连拍照片

iphone - 如何向导航栏添加多个按钮?

ios - Swift Firebase 下载 map 注释上的注释图像单击

ios - 动态更改 UITableView 高度 iOS7