小编arn*_*orn的帖子

UIImage imageNamed返回nil

我是iOS和Xcode的新手.

我尝试加载图像

[UIImage imageNamed:@"imageName.png/jpg and so on"];
Run Code Online (Sandbox Code Playgroud)

但它只返回零.图像应该在我的项目包中,考虑到我可以从InterfaceBuilder中的拖放菜单中选择它,并通过"添加文件到"项目名"..."菜单将其添加到Xcode中.

我使用.png或.jpg图像没有区别,结果保持不变:它们通过IB工作,但如果我尝试自己运行imageNamed方法则不行.

xcode uiimage imagenamed ios

46
推荐指数
6
解决办法
6万
查看次数

在前瞻课程中找不到财产

我遇到了一个困扰我一段时间的问题 - 特别是因为它对我没有任何意义.

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时"找不到属性" …

xcode properties objective-c ios

7
推荐指数
1
解决办法
8353
查看次数

UIImageView setImage不适用于IBOutlet

我想在运行时将图像设置为我的背景,所以我在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,但是在上面的代码中尝试使用它们时却没有.因此图像文件不应该造成任何问题.

xcode interface-builder uiimageview iboutlet ios

2
推荐指数
1
解决办法
4122
查看次数