我刚刚开始在objective-c编程,我遇到了"使用未声明的标识符'uneImage'的问题;你的意思是'_uneImage'?".很多帖子谈到这个,但我还没有找到解决方案.
.H :
#import
@interface ViewController : UIViewController
{
UIImagePickerController *picker;
}
@property (weak, nonatomic) IBOutlet UIImageView *uneImage;
- (IBAction)album:(id)sender;
@end
Run Code Online (Sandbox Code Playgroud)
.M
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (IBAction)album:(id)sender
{
picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
uneImage.image = [info objectForKey:UIImagePickerControllerOriginalImage];
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Run Code Online (Sandbox Code Playgroud)
定义属性时xyz,默认情况下,其名称将转换_xyz为命名其支持变量.您可以使用@synthesize name;或甚至覆盖它@synthesize name = someOtherName;,但@synthesize不再需要使用它.
属性本身从外部可见,但它不会像变量那样在范围中引入非限定名称.换句话说,您不能在没有前缀的情况下使用该属性self,但您可以使用其支持变量.
长话短说,替换
uneImage.image = [info objectForKey:UIImagePickerControllerOriginalImage];
Run Code Online (Sandbox Code Playgroud)
同
_uneImage.image = [info objectForKey:UIImagePickerControllerOriginalImage];
Run Code Online (Sandbox Code Playgroud)
要么
self.uneImage.image = [info objectForKey:UIImagePickerControllerOriginalImage];
Run Code Online (Sandbox Code Playgroud)
使它工作.
| 归档时间: |
|
| 查看次数: |
6054 次 |
| 最近记录: |