`
izuoyan
  • 浏览: 9230438 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Objective-C属性介绍

 
阅读更多

我们知道在Objective-C中,使用@property配合@synthesize可以让编译器自动实现getter/setter方法,使用的时候也很方便,可以直接使用对象.属性的方法调用。




那如果我们想要对象.方法的方式来调用一个方法并获取到方法的返回值,那就需要使用@property配合@dynamic了



这样就可以使用对象.firstArrayValue来获取到_array数组中的第一个值了,很显然,这种方法并不适用于需要传递参数的方法。

其实使用@dynamic关键字是告诉编译器由我们自己来实现访问方法。

如果使用的是@synthesize,那么这个工作编译器就会帮你实现了。

说明:代码只为示例代码,实际使用时每句代码要放到相应位置的。

===== 最后转载下关于@property(*)括号中的属性内容介绍 =====

readonly

此标记说明属性是只读的,默认的标记是读写,如果你指定了只读,在@implementation中只需要一个读取器。或者如果你使用@synthesize关键字,也是有读取器方法被解析。而且如果你试图使用点操作符为属性赋值,你将得到一个编译错误。

readwrite

此标记说明属性会被当成读写的,这也是默认属性。设置器和读取器都需要在@implementation中实现。如果使用@synthesize关键字,读取器和设置器都会被解析。

assign

此标记说明设置器直接进行赋值,这也是默认值。在使用垃圾收集的应用程序中,如果你要一个属性使用assign,且这个类符合NSCopying协议,你就要明确指出这个标记,而不是简单地使用默认值,否则的话,你将得到一个编译警告。这再次向编译器说明你确实需要赋值,即使它是可拷贝的。

retain

指定retain会在赋值时唤醒传入值的retain消息。此属性只能用于Objective-C对象类型,而不能用于Core Foundation对象。(原因很明显,retain会增加对象的引用计数,而基本数据类型或者Core Foundation对象都没有引用计数——译者注)

copy

它指出,在赋值时使用传入值的一份拷贝。拷贝工作由copy方法执行,此属性只对那些实行了NSCopying协议的对象类型有效。更深入的讨论,请参考复制部分。

nonatomic

指出访问器不是原子操作,而默认地,访问器是原子操作。这也就是说,在多线程环境下,解析的访问器提供一个对属性的安全访问,从获取器得到的返回值或者通过设置器设置的值可以一次完成,即便是别的线程也正在对其进行访问。如果你不指定nonatomic,在自己管理内存的环境中,解析的访问器保留并自动释放返回的值,如果指定了nonatomic,那么访问器只是简单地返回这个值。

分享到:
评论

相关推荐

    Objective-C基础教程(入门教程).pdf

    综上所述,本教程覆盖了Objective-C编程语言的基础知识点,不仅包括语法和结构,还包括与C语言的兼容性、内存管理机制、面向对象编程的核心概念、以及如何在不同操作系统平台上进行开发的介绍。通过这些内容的学习,...

    Objective-c语言学习-快速入门完整版完整版

    Objective-C的类定义了对象的行为和属性,而对象是类的实例;继承允许子类继承父类的特性;封装确保数据的安全性;多态则提供了多种不同对象对同一消息的不同响应能力。 "第五讲 继承性"进一步阐述了如何利用继承来...

    Objective-C 2.0 运行时系统编程指南

    Objective-C 2.0引入了属性声明的概念,这是一种简化属性访问和管理的方式。属性声明使开发者能够轻松地为对象定义属性,并控制这些属性的存取方式。属性还可以指定合成(synthesis)属性,这使得编译器能够自动生成...

    Objective-C编程全解最新版.pdf.zip

    1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,因此,理解C语言的基本语法是必要的。Objective-C添加了消息传递机制、类和协议等面向对象特性。 2. **消息传递**:Objective-C中的对象通过发送消息来...

    Objective-C程序设计 第6版 pdf

    4. **Objective-C 2.0新特性**:第六版可能会涵盖Objective-C 2.0引入的一些新特性,如垃圾回收、属性(properties)和块(blocks)等,这些都是现代Objective-C编程不可或缺的部分。 5. **内存管理**:Objective-C...

    《Objective-C基础教程》中文版(含源代码)

    3. **Objective-C语法**:深入解析Objective-C的语法特性,如消息传递、方法定义、属性声明、类别(Category)和协议(Protocol)等,以及如何使用这些特性编写代码。 4. **Foundation框架**:介绍Objective-C开发...

    Objective-C2.0程序设计第二版中文版及代码

    1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,添加了面向对象特性。它的基础包括类、对象、消息传递等概念。类定义了对象的属性和行为,对象则是类的实例。消息传递是Objective-C的核心,通过`...

    Objective-C.2.0 中文版.pdf & Objective-C.chm

    Objective-C 2.0主要引入了轻量级垃圾收集(LLGC)和属性(properties)的改进,使得代码更加简洁易读。此PDF文档可能会详细讲解这些新特性,同时涵盖与CHM文件相同的基础知识,但用中文进行解释,这对于中国开发者...

    这是一个基于Objective-C语言的基础案例集 旨在用于给初学者快速了解Objective-C语言的语法 .zip

    Objective-C是在C语言的基础上扩展的,因此了解C语言的基本概念是必要的。C语言提供了基本的数据类型(如int、char、float等)、控制流程(如if语句、for循环、while循环)、函数以及指针等概念。在Objective-C中,...

    Objective-C

    Objective-C是在C语言的基础上扩展了Smalltalk式的面向对象特性,使得它既有C语言的强大功能,又具备了面向对象编程的灵活性。 在Objective-C中,类是所有对象的基础。类定义了一组属性(实例变量)和方法(函数)...

    Objective-C run time

    Objective-C运行时系统(Run time)是Objective-C语言的关键组成部分,它允许许多决策在编译时和链接时推迟到运行时进行。这意味着Objective-C不仅仅是依赖编译器,还需要一个运行时系统来执行编译后的代码。运行时...

    Objective-C专业书籍汇总pdf

    这本书是初学者的理想起点,它详细介绍了Objective-C的基本语法和特性。读者将学习如何定义类,理解消息传递机制,这是Objective-C的核心概念。书中还会涵盖对象生命周期,如初始化和释放,以及如何使用属性和协议来...

    Objective-C基础教程 中文 PDF 清晰版 [31M]

    附录中还介绍了如何从其他语言过渡到Objective-C。   本书适合各类开发人员阅读。 内容截图 目录: 第1章 启程.1 1.1 预备知识1 1.2 历史背景1 1.3 内容简介2 1.4 小结3 第2章 对C的扩展4 2.1 最简单的...

    Programming With Objective-C

    属性和方法声明遵循Objective-C的编程约定,有助于封装和数据管理。另外,Objective-C中的类也可以作为对象来使用。 4. 动态特性 Objective-C是一种动态语言,对象在运行时可以添加或修改行为。比如,使用...

    Object-C语言教程-提供了 Objective-C 的基本语法和一些示例,希望能够帮助你快速入门 Objective-C

    **Objective-C**是一种结合了C语言的基础特性和Smalltalk式消息传递机制的面向对象编程语言。作为C语言的一个超集,Objective-C允许开发者直接使用C语言代码。此外,它还借鉴了C++的一些特性,尽管它并非C++的直接...

    Objective-C基础教程(Learn Objective-C)随书源码下载

    Objective-C是C语言的超集,它扩展了C语言,加入了面向对象的特性。面向对象编程(OOP)的核心概念包括类、对象、继承、封装和多态。Objective-C通过消息传递机制实现了这些概念,使得代码更加模块化和可维护。 2....

    Learn objective-c on the mac配套实例代码

    Objective-C 是苹果公司为其操作系统 macOS 和 iOS 开发的一种面向对象的编程语言。它在苹果的开发环境中占有核心地位,是创建 macOS 应用程序、iOS 应用程序以及 watchOS 和 tvOS 应用程序的基础。"Learn Objective...

    这是一个基于Objective-C语言的基础案例集。旨在用于给初学者快速了解Objective-C语言的语法。.zip

    1. **Objective-C的起源与特性**:Objective-C是在C语言的基础上扩展的,增加了消息传递机制和面向对象特性。它的语法包含C语言的所有部分,同时引入了类、继承、多态等OOP概念。 2. **类与对象**:在Objective-C中...

    objective-c编程 第2版=objective-c program 2nd edition_13889311

    此外,还会涉及Objective-C中的特殊语法,如nil和NULL的区别、实例变量和属性的使用。 2. **类与对象**:Objective-C的核心是类和对象。书中会详细解释如何定义类,创建对象,以及如何通过方法(selector)来实现...

Global site tag (gtag.js) - Google Analytics