gpt4 book ai didi

iphone - Objective-c Iphone 如何设置属性的默认值

转载 作者:太空狗 更新时间:2023-10-30 03:18:51 25 4
gpt4 key购买 nike

您好,我在 ViewController.h 中有以下代码:

#import <UIKit/UIKit.h>

@interface CalcViewController : UIViewController {
NSNumber* result;
NSString* input;
//NSString* input = @"";

IBOutlet UITextField* display;
}

@property (retain) NSNumber* result;
@property (retain) NSString* input;
@property (nonatomic, retain) UITextField* display;

@end

问题是我想在输入中附加一个字符串,但是当它仍然为空时这是不可能的。这就是为什么我想将输入的默认值设置为@""。但是我应该把这段代码放在哪里。

我知道一种可能的解决方案,您可以将它放在默认构造函数中。但我不知道把它放在什么文件中。我应该从哪里调用它。

不幸的是,我对 C 的了解有限,并且意识到 .h 文件可能不是正确的位置。

如果您需要,项目类型是基于 View 的应用程序。

希望你能帮到你。

最佳答案

您可能会发现阅读一些有关 Objective-C 或 Cocoa 的文档很有用。如果您在此处的 StackOverflow 或 Google 上执行搜索,您可能会找到一些关于阅读 Material 的好建议。

要回答您的问题,您应该有一个 CalcViewController 的@implementation。人们最常将这个@implementation 放在*.m 文件中。如果您的 *.h 文件被命名为“ViewController.h”,那么实现将进入“ViewController.m”。

然后您将创建 UIViewController 的初始化函数的副本并将其放置在那里(我不知道默认的初始化函数是什么)。

例如:

@implementation CalcViewController

@synthesize result;
@synthesize input;

- (id)initWithNibName:(NSString*)aNibName bundle:(NSBundle*)aBundle
{
self = [super initWithNibName:aNibName bundle:aBundle]; // The UIViewController's version of init
if (self) {
input = [[NSString alloc] initWithString:@""]; // You should create a new string as you'll want to release this in your dealloc
}
return self;
}

- (void)dealloc
{
[input release];
[super dealloc];
}
@end // end of the @implementation of CalcViewController

注意事项:

  • 您可能希望将文件重命名为 CalcViewController。我相信 Xcode 的重构引擎更容易处理。
  • 当您将显示实例变量与 Interface Builder 连接时,您无需为显示实例变量声明 @property。除非您希望 CalcViewController 的客户端经常更改它

编辑:2009 年 4 月 28 日:美国东部时间上午 10:20:我建议实际分配一个 NSString,因为从技术上讲,您应该在 dealloc 中释放它。

编辑:2009 年 4 月 28 日:美国东部时间上午 11:11:我更新了@implementation 以使用 UIViewController 的 init 版本。

关于iphone - Objective-c Iphone 如何设置属性的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/798030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com