【问题标题】:What we are actually doing with property in code?我们实际上对代码中的属性做了什么?
【发布时间】:2014-04-18 18:14:02
【问题描述】:

首先,我是 Objective C 和 iOS 开发的新手。

目前我正在尝试使用 TableView

我有财产

@property (strong, nonatomic) IBOutlet UITableView *tableView;//for table view

现在我看到了这样的东西,

-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
    return [data count];
}

代码的确切含​​义是什么。我在这里用tableView 做什么,以及 property 的名称和 message 的名称如何相同,即tableView

【问题讨论】:

  • 您可以从 iTunes 中找到的斯坦福大学官方 iOS 编程讲座中了解这一点以及许多其他内容。如果您自学,我认为这是了解基础知识的最佳方式(更复杂的示例可能已过时)。我就是这样做的,它帮助很大。
  • @cyborg86pl 谢谢,我会通过它。
  • 请先学习一些有关 Objective-C 的知识,本网站的目的是回答具体问题——而不是教授编程语言..

标签: ios objective-c uitableview


【解决方案1】:

在第一行中,您声明了由情节提要创建的 tableview 的属性。

@property 指令的目标是通过自动生成这些访问器方法来轻松创建和配置属性。它允许您在语义级别上指定公共属性的行为,并为您处理实现细节。

-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section

{
return [data count];
}

这是一个表格视图委托方法,它定义表格视图中特定部分的行数

data 是您的数组名称,包含您要在 tableview 单元格中显示的元素

[data count] 返回表格视图中的行数

更多细节检查

property

table view

【讨论】:

    【解决方案2】:

    我在这里用 tableView 做什么

    tableView:numberOfRowsInSection: 是从UITableViewDatasource Protocole 做简单的方法,UITableView 类型的对象会做类似的事情:

    [self.delegate tableView:self numberOfRowsInSection:section]
    

    因此,如果您在viewController 中执行tableView.datasource = self,则该对象将接收消息,因此需要回复tableview

    以及属性名称和消息名称如何相同,即tableView。

    @property 只是指示编译器在您的类中创建访问器和 iVar,这就是为什么它似乎同时做很多事情的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 2020-11-21
      • 2015-02-26
      • 2017-06-29
      • 2013-06-13
      • 2021-10-25
      相关资源
      最近更新 更多