我是iOS和Xcode的新手.
我尝试加载图像
[UIImage imageNamed:@"imageName.png/jpg and so on"];
Run Code Online (Sandbox Code Playgroud)
但它只返回零.图像应该在我的项目包中,考虑到我可以从InterfaceBuilder中的拖放菜单中选择它,并通过"添加文件到"项目名"..."菜单将其添加到Xcode中.
我使用.png或.jpg图像没有区别,结果保持不变:它们通过IB工作,但如果我尝试自己运行imageNamed方法则不行.
我遇到了一个困扰我一段时间的问题 - 特别是因为它对我没有任何意义.
Xcode似乎没有找到我的对象的一些属性,即使它们被正确声明.这里有一些代码:
.h文件
@interface Start1ViewController : UIViewController {
NSString *updatedStatus;
NSString *updatedTime;
}
@property (retain, nonatomic) NSString *updatedTime;
@property (retain, nonatomic) NSString *updatedStatus;
Run Code Online (Sandbox Code Playgroud)
并且各自在.m中合成
#import "Start1ViewController.h"
@implementation Start1ViewController
@synthesize updatedStatus, updatedTime;
Run Code Online (Sandbox Code Playgroud)
我想从持有上面类的实例的对象访问这些属性:
#import <UIKit/UIKit.h>
@class Start1ViewController;
@interface PartyPickerViewController : UIViewController {
IBOutlet UIDatePicker *datePicker;
Start1ViewController *start1ViewController;
}
Run Code Online (Sandbox Code Playgroud)
.M
-(IBAction)buttonPressed:(id)sender{
NSDate *selected =[datePicker date];
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
[timeFormatter setDateFormat:@"HH:mm"];
NSString *dateString = [timeFormatter stringFromDate:selected];
[start1ViewController setUpdatedStatus:@"Party"];
[start1ViewController setUpdatedTime:dateString];
[self.navigationController popViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)
Xcode告诉我setUpdatedStatus和setUpdatedTime不存在......而且它们不起作用.我尝试使用start1ViewController.updatedStatus = @"Party"; 相反,但这根本不会构建"在Start1ViewController类的对象上找不到属性updatedStatus"
我以前遇到过这个问题,那个时候我通过多次使用.-notation和明确使用setter方法切换它来工作,但即使在其他情况下,它仍然有效,我仍然得到方法的警告和使用.notation时"找不到属性" …
我想在运行时将图像设置为我的背景,所以我在Interface Builder中创建了一个UIImageView'backGroundImage' IBOutlet.但是以下代码:
UIImage *image = [UIImage imageNamed:imageName];
NSLog(@"image=nil %d",(image ==nil));
NSLog(imageName);
[self.backGroundImage setImage:image];
NSLog(@"backgroundImage=nil %d",(self.backGroundImage.image ==nil));
Run Code Online (Sandbox Code Playgroud)
给我以下 NSLogs
2012-06-15 12:09:43.967 iElster[1960:207] image=nil 0
2012-06-15 12:09:43.967 iElster[1960:207] bedroom-sketch-corel-eps-vector-art-1141.jpg
2012-06-15 12:09:43.968 iElster[1960:207] backgroundImage=nil 1
Run Code Online (Sandbox Code Playgroud)
所以基本上我可以加载我的图像,但我无法将其设置为图像UIImageView.如果我包括以下行
backGroundImage = [[UIImageView alloc]init];
Run Code Online (Sandbox Code Playgroud)
我不再为我的'nil' backGroundImage.image- 但在那种情况下我显然不再使用UIImageViewOutlet创建的了.我没有看到上面代码的问题,特别是因为我在类似Stack Overflow线程中看到的所有建议完全相同:"只需使用setImage方法"; 任何想法可能是什么问题?
PS:只是为了澄清一下 - 我尝试使用不同的图像,包括.png和.jpg,如果我将它们设置为我的子视图,它们都可以工作ScrollView,但是在上面的代码中尝试使用它们时却没有.因此图像文件不应该造成任何问题.
ios ×3
xcode ×3
iboutlet ×1
imagenamed ×1
objective-c ×1
properties ×1
uiimage ×1
uiimageview ×1