`

Initializers -- object-c中的alloc init的解释

阅读更多
At the beginning of this chapter, we talked about how an instance is created: its class is sent the message alloc, which creates an instance of that class and returns a pointer to it, and that instance is sent the message init. The init message isn’t a special type of instance method, though; it is simply a naming convention. Your initialization method could have a totally different name, like finishMakingInstance. However, by convention, all initialization methods begin with the word init. Objective-C is all about naming conventions, which you should strictly adhere to. (Seriously. Disregarding naming conventions in Objective-C results in problems that are worse than most beginners would imagine.)

The class NSObject implements a method named init. This is the initializer message you need to send to an instance of NSObject to initialize it. Because init is the main (or, in this case, only) initialization method for NSObject, we call it thedesignated initializer. Classes can have multiple initializers, but for every class, there is one designated initializer. The designated initializer must make sure that each of the instance variables has a valid value. Only then will the newly created instance be valid. (“Valid” has different meanings, but the meaning in this context is, “When you send messages to this object after initializing it, you can predict the outcome and nothing bad will happen.”) Typically, the designated initializer is the initialization method with the most arguments.

in Objective-C, classes can also receive messages. We call these class methods. (alloc is an example of a class method.)
分享到:
评论
2 楼 a564941464 2011-12-12  
一样
1 楼 pj7670623 2011-12-07  
幸好有~~~有道!!不然咋看的懂哦!

相关推荐

    Object-C语言教程

    Object-C,全称Objective-C,是一种基于C语言的面向对象编程语言,主要用于Apple的iOS和macOS平台开发。它在C语言的基础上添加了Smalltalk风格的消息传递机制,使得对象间的交互更加灵活。本教程将深入探讨Object-C...

    ember-load-initializers

    灰烬加载初始化器 一个很小的插件,用于在ember-cli中自动加载初始化程序和实例初始化程序文件。 此加载项对app/initializers和app/instance-initializers内部的文件进行迭代,并通过传递文件的解析名称来分别调用...

    Objective-C 2.0 with Cocoa Foundation--- 7,对象的初始化以及实例变量的作用域

    在Objective-C中,初始化通常涉及`init`方法。每个类都有一个或多个初始化方法,它们负责为新创建的对象设置初始状态。默认情况下,当你调用`[[ClassName alloc] init]`时,会调用类的`init`方法。然而,对于继承链...

    devise-auth0:在ruby Web应用程序中对auth0用户进行身份验证

    将此行添加到您的应用程序的Gemfile中: gem 'devise-auth0' 然后执行: $ bundle 或将其自己安装为: $ gem install devise-auth0 配置 在config/initializers/devise.rb : require 'devise/strategies/auth...

    js-initializers:避免在您的 Rails 应用程序上出现 JS 混乱! js-initializers 是一个添加微框架的引擎,用于以模块化方式初始化和组织客户端逻辑

    )用法将js-initializers添加到您的 Gemfile # Gemfilegem 'js-initializers' 将js-initializers添加到您的链轮清单: //= require js-initializers 等等! 您已准备好添加初始化程序: // app/assets/javascripts/...

    C语言错误解释和总结

    ### C语言错误解释和总结 在C语言编程中,遇到各种各样的编译错误和运行时错误是家常便饭。这些错误不仅包括语法上的不规范,也涵盖了类型不匹配、资源管理不当以及逻辑错误等问题。下面将对部分常见的C语言错误...

    Kubernetes Initializers工作原理介绍.pptx

    Kubernetes Initializers是Kubernetes集群中的一种扩展机制,它允许在对象(如Pod、Service等)被正式创建或更新之前,执行预初始化的任务。这种机制主要用于实现更细粒度的控制,确保资源按照特定策略进行管理和...

    C语言编程常见错误

    本文将针对C语言编程中常见的错误进行总结,并提供相应的解决方案。 #### 1. 忽略了大小写字母的区别 **问题描述**:C语言区分大小写,如变量`a`和`A`被视为不同的变量。例如: ```c main() { int a = 5; ...

    勇者斗恶龙

    首先,我们要理解Object-C中的便利构造器(Convenience Initializers)。便利构造器是为了方便程序员快速创建对象而设计的,它们通常由类的实例方法定义,而不是分类。便利构造器可以调用同一类或父类的其他初始化...

    Monopoly大富翁

    便利构造器(Convenience Initializers)是Object-C中初始化过程的一部分。它们是类提供的额外构造器,用于简化创建对象的过程。在Monopoly中,可能会有便利构造器用于快速创建新的玩家对象,设定初始位置、资金等。...

    简单的 Objective-C 计算器类

    这个"简单的 Objective-C 计算器类"示例旨在教授初学者如何在 Objective-C 中创建一个基本的计算功能。通过理解这个类,我们可以学习到以下几个关键知识点: 1. 类与对象: 在 Objective-C 中,一切皆为对象。`...

    JLX12864G液晶屏程序.pdf

    JLX12864G-54202-PN 可以显示 128 列*64 行点阵单色图片,或显示 16*16 点阵的汉字 8 个*4行,或显示 8*16 点阵的英文、数字、符号 16 个*4 行。或显示 5*8 点阵的英文、数字、符号 21 个*8 行。

    《你必须知道的495个C语言问题》

    《你必须知道的495个C语言问题》以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预...

    PyPI 官网下载 | dodoo-initializer-0.5.1.tar.gz

    5. **docs** 目录 - 通常包含 Sphinx 构建的文档,解释库的使用方法、API参考等。 6. **src** 或 **dodoo_initializer** 目录 - 包含实际的Python源代码。 为了使用 "dodoo-initializer",开发者通常需要先将 tar....

    详解C语言Struct(结构体)系列之一

    C语言中的结构体(Struct)是一种用户定义的数据类型,允许将不同类型的数据项聚集在一起构成一个单一类型。结构体在C语言中扮演着极其重要的角色,它使得程序员可以创建复杂的自定义数据结构,以更贴近现实世界的...

    IOS开发基本知识

    构造函数在Objective-C中被称为初始化器(initializers)。初始化器负责为新创建的对象设置初始状态。Objective-C不支持构造函数重载,但可以通过定义多个初始化器来达到类似的效果。例如,可以提供一个无参数的初始化...

    Csharp.6.for.Programmers.6th.Edition

    The professional programmer’s Deitel® guide to C# 6 and object-oriented development for Windows® Written for programmers with a background in high-level language programming, C# 6 for Programmers ...

    C++ 标准 ISO 14882-2011

    - C++对象模型(The C++ object model)解释了对象在内存中的表示和构造方式。 - 程序执行(Program execution)定义了程序执行的规则,包括函数调用顺序和返回值。 - 多线程执行和数据竞争(Multi-threaded ...

    Swift中初始化init的方法小结

    本文将详细介绍Swift中关于初始化init的方法,特别是对于结构体和类的初始化规则。 首先,Swift的初始化过程分为两种类型:指定构造器(Designated Initializers)和便利构造器(Convenience Initializers)。指定...

    c语言ex和re中的一些单词1

    以下是一些在C语言中常见的关键术语及其详细解释: 1. **Debugging**:调试是找出并修复程序中错误的过程。它涉及运行程序,识别异常行为,并使用调试工具(如GDB)来定位和修复问题。 2. **Properly**:在编程中...

Global site tag (gtag.js) - Google Analytics