旧的iPhone SDK代码不起作用?

时间:2013-05-08 05:05:19

标签: objective-c

我正在阅读几年前编写的Objective-C书籍,并且我到了他们教授如何使用界面构建器来链接和设计UI的部分。现在相当于它的“故事板”。我遵循IB的说明并将它们翻译成故事板,它似乎在大多数情况下都有效。但是,我没有让我的实例变量UILabel显示在屏幕上。所有按钮和标签都是在故事板中创建的,而不是以编程方式创建的。任何帮助将不胜感激!

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {

   IBOutlet UILabel *randNumber; //instance variable

}

-(IBAction)seed:(id)sender;
-(IBAction)generate:(id)sender;

@property (retain,nonatomic) UILabel *randNumber; //getter and setter methods

@end

ViewController.m

    @interface ViewController ()

@end

@implementation ViewController
@synthesize randNumber;

- (void)viewDidLoad
{
    [super viewDidLoad];

}

-(IBAction)seed:(id)sender
{
    srandom(time(NULL));
    [randNumber setText:@"Generator seeded."];

}

-(IBAction)generate:(id)sender
{
    //generate a random number between 0 and 100 inclusive
    int generated;
    generated = (random()%101);
    [randNumber setText:[NSString stringWithFormat:@"%i",generated]];
}



- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

@end

2 个答案:

答案 0 :(得分:1)

我将猜测并假设您的UILabel正确显示在屏幕上,但它不会显示您在调用setText:方法时所做的更改。

如果是这种情况,则表示您的IBOutlet(可能还有您的IBActions)未正确连接。

首先需要确保将IB中的UIViewController类设置为“ViewController”:

Set the Custom Class to ViewController

然后,您可以通过选择它们将按钮连接到IBActions,将标签连接到IBOutlet,然后按Ctrl +拖动到View Controller:

Ctrl+drag to your View Controller

然后,您应该获得一个包含符合条件的IBOutlets和IBActions列表的弹出窗口(取决于您拖动的位置),这只是选择正确的一个。

答案 1 :(得分:0)

故事板从iOS 5.0开始工作。当然,它不适用于早期版本的iOS。并且错误不会在编译期间发生,而是在模拟器/设备上运行

当然,您还没有发布使用

的sdk版本