【问题标题】:objective-c getters/setters & variable/property declarations--an easier way?objective-c getter/setter & 变量/属性声明——更简单的方法?
【发布时间】:2009-09-12 18:13:53
【问题描述】:

希望这是一个简单的过程。

我正在使用 Objective-c 进行编码,我想知道您是否使用任何工具/技巧(任何东西)来解决这个烦恼(见下文)。

有没有更简单的方法在头文件和实现文件中声明变量/属性?

例如,我不喜欢在标题中输入这个:

NSString *commercial_name;

@property (nonatomic, retain) NSString *commercial_name

然后输入

@synthesize commercial_name

在实施中

当需要所有 3 个东西时(或者当我必须删除所有 3 个东西时)这很乏味,我想知道是否有一个插件(或其他东西)你可以简单地说,我将有一个名为的变量foo 类型的 bar 并且我想要它的 getter 和 setter 方法。噗,搞定了。

TYVM!

【问题讨论】:

  • 顺便说一句:“commercial_name”应该是“commercialName”。
  • @Philippe:这是一个通用约定。许多 Cocoa 特性实际上取决于以这种方式命名的事物。
  • 苹果说。检查 ivar 命名和方法命名的约定:developer.apple.com/mac/library/documentation/Cocoa/Conceptual/…。许多内置的东西,如 KVC 和 KVO,实际上取决于名称是否符合,如果不符合,您必须编写额外的代码来处理它。

标签: iphone objective-c


【解决方案1】:

在使用“现代运行时”的 iPhone 上,您可以省略 ivar(字段声明)。简单地声明和综合属性就足够了。 ivar 是在运行时创建的。

更多信息在这里(在页面的末尾):

https://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProperties.html

另一个讨论:

Using instance variables with Modern Runtime

遗憾的是,这种机制在 iPhone 模拟器中不起作用,甚至在 Snow Leopard 中也不起作用 :-(

【讨论】:

  • 新的 Objective-C 运行时只有 64 位,看起来 iPhone 模拟器在 Snow Leopard 上还不是 64 位。
【解决方案2】:

【讨论】:

  • 这就是我在回答中的意思,)
【解决方案3】:

有自动补全脚本(比如输入“log”然后按 Cmd + . 来自动补全到 NSLog())

您可以构建一个插入这三行的代码,您只需提供属性的名称和类型。

【讨论】:

    【解决方案4】:

    查看以下链接,他编写了一个 Apple Script,您可以在 XCode 中使用,他还放了视频,让我们看看如何正确使用它!

    http://allancraig.net/blog/?p=315

    【讨论】:

    猜你喜欢
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    相关资源
    最近更新 更多