`

iOS编程——类方法 和self

 
阅读更多

Objective-C里面既有实例方法也类方法。类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method)。工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,所以在其他的语言里面类方法有的时候被称为静态方法。
注意点一:类方法
1,类方法可以调用类方法。
2,类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法。
3,类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量。
4,类方法作为消息,可以被发送到类或者对象里面去(实际上,就是可以通过类或者对象调用类方法的意思)。
注意点二:self的规则
大家需要记住下面的规则:
1,实例方法里面的self,是对象的首地址。
2,类方法里面的self,是Class.
尽管在同一个类里面的使用self,但是self却有着不同的解读。在类方法里面的self,可以翻译成class self;在实例方法里面的self,应该被翻译成为object self。在类方法里面的self和实例方法里面的self有着本质上的不同,尽管他们的名字都叫self。

分享到:
评论

相关推荐

    IOS应用源码——分类.zip

    "IOS应用源码——分类.zip"这个压缩包很可能是包含了一个或多个iOS应用程序的完整源代码,特别强调了"分类",这通常指的是Objective-C中的Category或者Swift中的Extension。 在iOS开发中,Category是一种强大的工具...

    iOS学习——block深入浅出-代码

    在iOS开发中,Block是一种强大的、灵活的编程结构,它允许你在代码中定义小型的、可重用的代码块,可以当作参数传递,也可以作为返回值。本文将深入探讨Block的概念,以及如何在iOS开发中有效地使用它们。我们将会...

    IOS应用源码——Protocol.rar

    在iOS开发中,协议(Protocol)是Objective-C和Swift编程中的一个重要概念,它定义了一组方法,但不提供实现。这个“IOS应用源码——Protocol.rar”文件很可能包含了一个或多个示例项目,用于演示如何在iOS应用中...

    IOS应用源码——TabBarController(标签).rar

    在iOS应用开发中,TabBarController是一种非常常见的组件,它用于实现底部导航栏,通常由多个Tab(标签)...此外,还可以学习到如何使用Swift或Objective-C语言进行iOS应用开发,这对于提升你的iOS编程技能大有裨益。

    IOS应用源码——NSThread.zip

    在iOS应用开发中,NSThread是苹果提供的一个用于多线程编程的重要类,它允许开发者在应用程序中创建和管理线程。在这个名为"NSThread.zip"的压缩包中,我们很可能是得到了一个示例项目或者代码库,专门展示了如何在...

    IOS应用源码——tip弹出提示选项窗口demo.zip

    这个"IOS应用源码——tip弹出提示选项窗口demo.zip"应该包含了一个示例项目,展示了如何在iOS应用中实现这种功能。下面将详细介绍这个知识点。 1. **UIAlertController**: iOS中,弹出提示窗口通常通过`...

    IOS应用源码——tip弹出提示选项窗口demo.rar

    在iOS应用开发中,"tip弹出提示选项窗口"是一种常见的用户交互设计,它用于向用户提供即时信息或者在用户操作时展示重要的选择项。...同时,这也可以作为一个实践案例,帮助开发者加深对iOS编程规范和最佳实践的认识。

    IOS应用源码——常用的下拉动态加载.zip

    本资源"IOS应用源码——常用的下拉动态加载.zip"似乎提供了一个实现这一功能的示例代码,这对于开发者来说是一个很好的学习和参考材料。 在iOS应用中实现下拉刷新通常涉及以下关键技术点: 1. **UITableView/...

    IOS应用源码——ui多线程的简单例子 NSThread.zip

    这个名为"NSThread.zip"的压缩包提供了一个简单的iOS应用源码示例,专门用于演示如何在iOS中使用NSThread进行多线程编程。 首先,我们要理解什么是多线程。在计算机系统中,线程是操作系统调度的基本单位,一个进程...

    IOS编程中使用多线程

    ### IOS编程中使用多线程 #### 背景与问题描述 在iOS应用开发过程中,经常遇到的一个问题是:应用程序加载数据时导致UI界面卡顿甚至假死,从而严重影响用户体验。例如,当从网络或者本地数据库加载大量数据时,...

    iOS购物车联动demo

    首先,我们要了解iOS应用开发的基础——Swift编程语言。Swift是Apple为iOS、iPadOS、macOS、watchOS和tvOS开发的开源编程语言,它具有安全、高性能和现代编程语言的特点。在这个demo中,大部分代码将使用Swift编写。...

    ios Objective-C分类 (category),字符串的拆分(componentsSeparatedByCharactersInSet)

    在iOS开发中,Objective-C是主要的编程语言之一,它为开发者提供了丰富的特性和机制来构建高效、可维护的应用程序。在这个场景中,我们关注的是Objective-C中的两个关键概念:分类(Category)和字符串操作——字符...

    iOS protocol的简单例子源码

    在iOS开发中,Protocol(协议)是一种非常重要的概念,它类似于其他编程语言中的接口或协定。Protocol定义了一组方法,但并不实现它们,而是由遵循该协议的类来实现。在本示例“iOS protocol的简单例子源码”中,...

    iOS设计模式之原型模式

    在iOS开发中,设计模式是一种重要的编程思想,它将实践中常用的设计策略抽象出来,以便于复用和提高代码质量。本文将深入探讨一种常见的设计模式——原型模式(Prototype Pattern),并结合具体的iOS应用场景进行...

    IOS 九宫格Demo

    首先,我们需要了解基本的界面构建工具——UIKit,它是iOS开发的核心框架之一,提供了创建用户界面的组件和类。在九宫格中,最常用的控件是UICollectionView,这是一个强大的视图类,用于展示可滚动的、多行多列的...

    《马上着手开发 iOS 应用程序》-HelloWorld

    首先,我们要了解iOS开发的主要工具——Xcode。Xcode是Apple为开发macOS和iOS应用程序提供的集成开发环境(IDE)。它包含了编写、测试和调试代码所需的所有工具,包括源代码编辑器、模拟器和界面构建工具。 在Xcode...

    iOS的UITableView开源包,MJRefresh上下拉刷新

    6. **兼容性好**:MJRefresh与Apple的最新API保持同步,支持iOS 8.0及以上版本,同时也兼容Swift和Objective-C的混合编程。 为了在项目中使用MJRefresh,开发者首先需要将MJRefresh库添加到项目中,这可以通过...

    ios试题总结

    Objective-C是一种面向对象的编程语言,它基于C语言,并引入了许多高级概念如对象、类和消息传递等。然而,与C++不同的是,Objective-C不支持多继承。这意味着一个类只能继承自另一个单一的父类,而不能同时继承多个...

Global site tag (gtag.js) - Google Analytics