首页
学习
活动
专区
圈层
工具
发布

关于Objective C编码规范,这些你一定要会

copyWithZone:(NSZone *)zone {} #pragma mark - NSObject - (NSString *)description {} 空格 缩进使用4个空格,确保在Xcode偏好设置来设置...局部变量不应该包含下划线。 方法 在方法签名中,应该在方法类型(-/+ 符号)之后有一个空格。在方法各个段之间应该也有一个空格(符合Apple的风格)。...条件语句 条件语句主体为了防止出错应该使用大括号包围,即使条件语句主体能够不用大括号编写(如,只用一行代码)。...一般来说,最好使用三元操作符是在根据条件来赋值的情况下。 Non-boolean的变量与某东西比较,加上括号()会提高可读性。如果被比较的变量是boolean类型,那么就不需要括号。...这样确保编译器正确地推断结果类型。

69730
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mac开发之 Cocoa 绑定 入门

    添加界面组件 拖入一个Label,放在视图的右侧,然后再拖入一个slider,把它放在Label的左侧,完成后,界面应用类似与下图: 添加组件 (4)给ViewController添加一个属性(Person类型...Label绑定 (6) 绑定Slider到控制器的son属性的score值 设置Slider绑定 运行一下应用,并在窗口中拖动slider,看看label的变化,你会发现,只有结束拖动slider的时候...,Label的内容才发生变化,如果需要实时显示拖动slider的变化,我们仅需要设置一下slider控件的continuous属性即可. (7) 设置持续更新 设置slider的continuous 我们发现应用启动时...的初始值 运行一下,你会发现并没有预想的结果,如果你使用Objective-C来构建工程,就会发现运行的效果正确,这是因为Swift中默认是关闭了KVO的属性监听,我们只需要开启就可以了,在Person...通过cocoa 绑定,我们没有写一行代码就实现了记录用户设置的功能~ cocoa中还为我们提供了其他的控制器对象来处理应用程序中的数据访问,比如NSArrayController,可以处理一组数据集合,

    2.6K20

    iOS程序员面试,绝对会遇到这些问题!

    是否参与过GitHub或其他同类型网站的iOS开源项目? 请描述一下你的iOS应用开发流程。 是否熟知CocoaPods?它是什么?如何运行的? 请概括一下你对软件授权的理解,及其对软件开发的影响。...能否描述一下如何在应用中使用Apple Pay? 请解释一下iOS应用沙盒机制。 VoiceOver是什么?请举例解释一下iOS中的辅助功能(Accessibility)。开发者如何使用这些功能?...Cocoa/Cocoa Touch是什么? 请概括一下Core Audio,Core Data以及Core Location各是什么。它们对iOS应用有何意义?...请解释一下NSUserDefaults。就你而言,你会如何在磁盘中对数组对象进行序列化? 你会如何储存用户的认证信息? 请问何为Keychain服务? 为什么移动设备上的缓存和压缩是不可或缺的?...请解释一下Interface Builder的作用以及NIB文件的概念。 iOS UI的图像储存类型是什么? 请描述一下Storyboard和标准NIB文件的差别。

    2.3K20

    六个方向关于iOS100个面试题,你都会了吗?

    是否参与过GitHub或其他同类型网站的iOS开源项目? 请描述一下你的iOS应用开发流程。 是否熟知CocoaPods?它是什么?如何运行的? 请概括一下你对软件授权的理解,及其对软件开发的影响。...能否描述一下如何在应用中使用Apple Pay? 请解释一下iOS应用沙盒机制。 VoiceOver是什么?请举例解释一下iOS中的辅助功能(Accessibility)。开发者如何使用这些功能?...Cocoa/Cocoa Touch是什么? 请概括一下Core Audio,Core Data以及Core Location各是什么。它们对iOS应用有何意义?...请解释一下NSUserDefaults。就你而言,你会如何在磁盘中对数组对象进行序列化? 你会如何储存用户的认证信息? 请问何为Keychain服务? 为什么移动设备上的缓存和压缩是不可或缺的?...请解释一下Interface Builder的作用以及NIB文件的概念。 iOS UI的图像储存类型是什么? 请描述一下Storyboard和标准NIB文件的差别。

    4.5K50

    100个iOS开发面试题汇总

    5.是否参与过GitHub或其他同类型网站的iOS开源项目? 6.请描述一下你的iOS应用开发流程。 7.是否熟知CocoaPods?它是什么?如何运行的?...能否描述一下如何在应用中使用Apple Pay? 17.请解释一下iOS应用沙盒机制。 18.VoiceOver是什么?请举例解释一下iOS中的辅助功能(Accessibility)。...22 Cocoa/Cocoa Touch是什么? 23请概括一下Core Audio,Core Data以及Core Location各是什么。它们对iOS应用有何意义?...29 请解释一下NSUserDefaults。就你而言,你会如何在磁盘中对数组对象进行序列化? 30 你会如何储存用户的认证信息? 31 请问何为Keychain服务?...59 请解释一下Interface Builder的作用以及NIB文件的概念。 60 iOS UI的图像储存类型是什么? 61 请描述一下Storyboard和标准NIB文件的差别。

    2.3K30

    一份走心的iOS开发规范

    【必须】禁止在方法前面加下划线“ _ ”。Apple官网团队经常在方法前面加下划线"_"。为了避免方法覆盖,导致不可预知的意外,禁止在方法前面加下划线。 【必须】自我描述性。...Cocoa frameworks(Cocoa系统库)中的私有方法通常以一个下划线“ _ ”开头,用于标记这些方法是私有的(比如, _fooData ) 。...以下例子声明了const常量的格式: const float NSLightGray; 1.12.3 其他常量类型 【必须】通常情况下,不要使用#define预处理命令(preprocessor command...initialize通常被用于设置class的版本号(参考 Versioning and Compatibility)。...【必须】如果一个对象在懒加载后,某些场景下又被设置为nil。我们很难保证这个懒加载不被再次触发。

    12.6K145

    Swift 值类型和引用类型

    在这篇文章中我们将会探索值类型和引用类型的价值,以及如何在它们二者间抉择。 有什么区别?...你在任何情况下用一个值类型,都能够假设你的其他代码不会使它改变,这通常在多线程环境中很有用,如果一个线程中使用的数据被另一个线程给意外的修改了,这通常会产生非常严重的Bug,且相当难以调试。...你也许会想,写一个完全不可变的类,这或许是有价值的,使用Cocoa的NSObject能简化这个过程,并且能很好地保持原有的语义。...当你写Cocoa程序的时候,大多数APIs都需要从NSObject继承,你就已经是一个类了(引用类型),针对其他情况,这里有些指导规则: 使用值类型,当…: 通过使用==去比较实例的数据 你想得到一个实例的独立副本...在提高安全性的精神下,这个模型将帮助你在Swift中写出更多可预知的代码。

    1.1K20

    【Airplay_BCT】Bonjour API架构

    如您所见,多播 DNS 响应程序(或其他 DNS 服务器)位于最低级别,因此您的软件不必直接与 DNS 交互。...大多数 Cocoa 程序员应该会发现这些类足以满足他们的需要。如果您需要更详细的控制,您可以使用来自 Cocoa 应用程序的 DNS 服务发现 API。...是一个标准的 IP 协议名称,前面有一个下划线,后面是主机到主机的传输协议(TCP 或 UDP),前面也有一个下划线。例如,在 UDP 上运行的普通 FTP 服务将具有 _tftp....在这种情况下,TXT 记录中的附加信息可用于识别预期的打印队列,如本例所示: 这种做法是必要的,因为服务类型历来与众所周知的端口相关联。...在这种情况下。然后,客户端应用程序可以从 PTR 记录中提取服务实例名称,并将其添加到屏幕上的音乐服务器列表中。 ---- 解析 服务发现通常只偶尔发生一次——例如,当用户第一次选择打印机时。

    1.6K20

    iOS学习——iOS 整体框架及类继承框架图

    整理自:IOS 整体框架类图值得收藏  一 整体框架 在iOS开发过程中,对iOS整体框架的了解和学习是必不可少的一个环节,今天我们就好好来了解一下iOS的整体框架。...如Accounts账户框架,广告框架,数据存储框架,网络连接框架,地理位置框架,运动框架等等。...,解释一下,官方文档中将OS体系分为四层,如下图所示,没有Cocoa Touch Layer和Application Layer,取而代之的是Cocoa (Application) Layer。...框架的入口: #import   ,当引入此头文件后,便可以在程序里使用任何在UIKit里声明的类。(PS: 当然还要把这个框架链接到你的应用程序中)。...那我们看看isa指针类型的数据结构是什么样的?

    4.5K70

    Objective-C三种定时器CADisplayLink NSTimer GCD的使用

    因为当滑动时, RunLoop会进入到UITrackingRunLoopMode 所以当我们发现计时器没有运行时, 可以检查下是否有加入到正确的mode中 那我们来说一下runloop的几种mode:...tracking loops时处于此种模式下,在此模式下会限制输入事件的处理。...在Cocoa应用程序中,默认情况下Common Modes包含default modes,modal modes,event Tracking modes.可使用CFRunLoopAddCommonMode...当设置tolerance之后在允许范围内的延迟可以触发事件,超过的则不触发。默认是时间间隔的1/10 网上很多人对fire方法的解释其实并不正确。...synthesize tTimer; - (void)viewDidLoad { [super viewDidLoad]; //创建GCD timer资源, 第一个参数为源类型

    3.2K31

    试水 Mac 开发 —— 代码生成器

    Optional,而是习惯给它们一个初始值,但是对象类型的属性给它个初始值我又觉得开销有点大,一般就用 Optional。...我对 Mac 开发其实一无所知……我就是直接打开 Xcode,新建了个 macOS 的项目,然后在 Storyboard 上拖了一个 TextField 和两个 TextView 进去,设置好约束之后,...Swift 中变量名是使用驼峰风格的,如果你的服务端是用 PHP,Ruby 之类的语言写的,返回的 JSON 中的 key 一般是用下划线分隔单词的,我们可以这么做: func normalizeVariableName...按《程序员修炼之道》中说的: 这是被动代码生成器的一个有趣的特性:它们不必完全正确。你需要在你投入生成器的努力和你花在修正其输出上的精力之间进行权衡。...在 Mac 开发中使用 RxSwift 感觉 RxCocoa 对 Cocoa 的支持并不好,譬如没有为 NSTextView 和 NSTextField 提供 rx.string、rx.stringValue

    97820

    Sketch 插件开发官方文档合集插件基础您的第一个插件开发环境调试ActionAPI发布插件插件捆绑插件,脚本和命令插件位置更多关于CocoaScriptSketchTool参考资源

    begin/ finish操作 一些操作(如SelectionChanged)实际上发生在两个阶段:begin和finish。...本文档解释了如何在那里发布它以及如何让Sketch接收插件的更新。...它可以包含两种类型的项目: 一个给出命令标识符的字符串 描述子菜单的字典(包含“标题”和“项目”) isRoot 默认情况下,此字典中列出的菜单项将显示在菜单中,其名称由标题键指定。...访问Cocoa和Sketch API 您可以从CocoaScript访问所有Cocoa和Sketch API。 Objective-C属性的行为与在桥的JavaScript端应该一样。...将选择器名称转换为JavaScript属性名称时采取以下步骤: 所有冒号都转换为下划线(最新的下划线是可选的)。 选择器的每个组件都连接成一个没有分隔的字符串。

    7.2K90

    老司机带你走进Core Animation 之CADisplayLink

    这两个方法比较重要,稍后我会着重讲解一下。 接着说一下他的五个属性。 fireDate,设置当前timer的事件的触发时间。通常我们使用这个属性来做计时器的暂停与恢复。...切换为正确的Mode 那我们来说一下runloop的几种mode: Default模式 定义:NSDefaultRunLoopMode (Cocoa) kCFRunLoopDefaultMode (Core...为什么他可以做到UI如德芙一样纵享丝滑呢?因为它赋予了UI极高的地位。全局仅有一条主线程,用来刷新UI。...dispatch_source_t是GCD为我们预留的源类型对象。 GCD方法众多,而且各种牛逼的应用,老司机也并不能玩转GCD,所以这里还是主要讲解一下GCD中Timer的用法吧。...第一个参数为源类型,最后一个参数为资源要加入的队列。 dispatch_source_set_timer(,,,) 这个方法用来设置我们timer的相关信息。

    2K20

    关于编程语言OC之9个基础知识点

    1、MAC操作系统上的整个开发环境成为Cocoa,Cocoa的开发语言是Objective-C,开发工具是Xcode 我以前搞不懂CocoaChina为何叫Cocoa,原来是因为Cocoa是Mac的开发环境...相信很多新手,看到各种h、m、xib、storyboard、plist、app、xctest这些文件类型名时,都有种想吐的感觉,看晕头了。 今天咱先记住h和m文件吧!...类实现,一般写在m文件里 格式: @implementation 类名 方法实现代码; @end 7、对象声明的语法 类名 *var1, *var2,...; alloc方法,获得内存空间;init方法,设置初值...如: Car *car=[[Car alloc]init]; 8、oc方法的调用:也称为给这个类或者实例发消息,类或者实例被称为“接收方”,oc允许在一个方法调用中嵌套另一个方法调用 记住格式:方括号[...碰到的时候再查阅下这个表格: ? ? 大概花了2个小时学习了下。不理解的内容,先记住。后面再深入理解。 ---- |设计+科技=自在园实验室。

    1.2K80

    macOS 应用开发流程

    配置项目: 创建新的 Xcode 项目,配置项目的基本信息,如产品名称、组织标识符等。3.代码编写选择语言: macOS 应用主要使用 Swift 或 Objective-C 语言开发。...4.调试与测试Xcode调试器: 利用 Xcode 的调试器,设置断点、单步执行等,查找并修复代码中的错误。单元测试: 编写单元测试,确保代码的正确性。...5.资源管理图片: 将图片添加到项目中,并设置其属性。本地化: 如果需要支持多种语言,进行本地化处理。6.打包与分发打包: 使用 Xcode 打包应用程序,生成可执行文件。...Cocoa/Cocoa Touch: 苹果提供的框架,用于构建 macOS 和 iOS 应用程序。Storyboards: 用于定义应用程序的界面和视图控制器之间的关系。...开发者需要掌握 Xcode 的使用、Swift 或 Objective-C 编程语言、Cocoa 框架等知识。通过合理的规划和设计,并结合苹果提供的丰富资源,可以开发出高质量的 macOS 应用程序。

    1.1K10
    领券