iOS 5.1:IBOutlet实例变量和@property声明

iOS 5.1:IBOutlet实例变量和@property声明,第1张

概述在创建自定义iOS表格视图单元格时,我创建了一个新的.xib文件,在界面构建器中拖放了一些UI元素,我的.h文件看起来像这样…… #import <UIKit/UIKit.h>@interface MasterTableViewCell : UITableViewCell{ IBOutlet UILabel *cellLabel; IBOutlet UIImage *cell 在创建自定义iOS表格视图单元格时,我创建了一个新的.xib文件,在界面构建器中拖放了一些UI元素,我的.h文件看起来像这样……

@H_419_8@

@H_419_8@

#import <UIKit/UIKit.h>@interface MastertableVIEwCell : UItableVIEwCell{    IBOutlet UILabel *cellLabel;    IBOutlet UIImage *cellimage;}@property (nonatomic,retain) IBOutlet UILabel *cellLabel;@property (nonatomic,retain) IBOutlet UIImage *cellimage;@end

在一些博客上,我看到实例变量丢失了.我什么时候需要声明实例变量?是否特定UI对象不需要实例变量和@property声明.
此外,我正在使用自动引用计数创建应用程序,因此垃圾收集需求也不存在.在使用实例变量时会有什么不同?属性?@H_419_8@解决方法 iOS中没有垃圾收集. iOS使用引用计数来跟踪对象的所有权.使用ARC不会消除引用计数,但编译器负责释放和保留对象.使用ARC时,不允许向对象发送保留,释放或自动释放消息,也不允许在dealloc方法中调用[super dealloc].在上面的代码中,由于您使用ARC,因此’retain’属性应替换为’strong’属性.

@H_419_8@

当您在实现中使用@property和相应的@synthesize时,您不需要创建支持实例变量 – 编译器会为您执行此 *** 作. @property和@synthesize一起创建了访问器方法(getter和setter),并且还允许您使用点表示法来引用对象的属性.如果您愿意,您仍可以编写自己的访问者方法.@H_419_8@

上面的代码可以替换为以下代码:@H_419_8@

@H_419_8@

#import <UIKit/UIKit.h>@interface MastertableVIEwCell : UItableVIEwCell@property (nonatomic,strong) IBOutlet UILabel *cellLabel;@property (nonatomic,strong) IBOutlet UIImage *cellimage;@end

在您的实现文件中,您将拥有:@H_419_8@

@H_419_8@

#import "MastertableVIEwCell.h"@implementation MastertableVIEwCell@synthesize cellLabel;@synthesize cellimage;

要么@H_419_8@

@H_419_8@

@synthesize cellLabel,cellimage;... remainder of your code

在您的代码中,为了确保您使用的是访问者方法,请使用“self”来引用您的属性:@H_419_8@

@H_419_8@

self.cellLabel.text = @"some text";

要么@H_419_8@

@H_419_8@

[[self cellLabel] setText:@"some text"];

我希望这有助于澄清一些事情.@H_419_8@ 总结

以上是内存溢出为你收集整理的iOS 5.1:IBOutlet实例变量和@property声明全部内容,希望文章能够帮你解决iOS 5.1:IBOutlet实例变量和@property声明所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1051921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存