我刚开始从事 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.tag
的 NSNumber
实例
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/