首页

时间和精神的房子
壹只iOS程序员的修行世界,欢迎来访

如果文章对您有所帮助
将是我最大的荣幸

Cocoa代码风格指南之注释规范(三)

Cocoa代码风格指南之命名规范(一)

Cocoa代码风格指南之排版规范(二)

Cocoa代码风格指南之注释规范(三)

Cocoa代码风格指南之使用规范(四)

写代码注释是十分重要的一件事。如果你的代码维护或迭代的代价很大,那对接手你代码的人可能会十分痛苦。好的注释能够一定程度上解决这一问题,这也是一个码农的基本素养。但是,注释并不是越多越好。好的代码应该是能够自我解释的。Objective-C 语法中的方法名本身就对其中的参数进行了解释,所以在写注释之前最好先检查下自己命名的问题,想想这些注释是不是有必要的。对一些简单的变量、方法和逻辑,是不需要注释的,这种注释只会分调用者的注......

Cocoa代码风格指南之使用规范(四)

Cocoa代码风格指南之命名规范(一)

Cocoa代码风格指南之排版规范(二)

Cocoa代码风格指南之注释规范(三)

Cocoa代码风格指南之使用规范(四)

代码使用规范实在太多,这里暂时列出部分。一些比较复杂的规范需要单独说明,列表如下。

整形数的使用规范

使用CGGeometry方法获取CGRect数据

属性内存管理相关修饰符的使用规范

属性声明在implementation与extension的使用规范

整型数的使用规范

C语言中的整型有很多种,到了 Objective-C 中,除了这些类型外,又加入了 NSIntenger 等。

short

int

long

long long

NSIntenger

int8_t

int16_t

int32_t

int64_t

取值范围

当我们需要比 int 范围更大的整型数时自然会选用 long。而 int 和 long 的位数是由编译器决定的,大部分 C/C++ 语言的编译器会根据系统的位数来决定 long 的位数。在 16 位系统下 int 为 16 位,long 为 32 位;在 32 位系统下 int 和 long 都......

CocoaPods的安装与使用(一)

CocoaPods的安装与使用(一)

CocoaPods的原理与技巧(二)

CocoaPods建立自己的Podspec(三)

CocoaPods诞生的时代背景(四)

简介

CocoaPods 是 Cocoa 项目的依赖管理工具。它支持 Swift 和 Objective-C 语言,同时支持超过10000个第三方开源库。它可以帮助你管理项目,让你的项目更加优美。

每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,CocoaPods的出现是必然的。

安装CocoaPods

......

CocoaPods的原理与技巧(二)

CocoaPods的安装与使用(一)

CocoaPods的原理与技巧(二)

CocoaPods建立自己的Podspec(三)

CocoaPods诞生的时代背景(四)

下载原理

pod 'LPLineChartView', :git => 'https://github.com/xiaofei86/LPLineChartView.git', :tag => '1.0.0'

当使用 CocoaPods 导入私有库时,CocoaPods 先是根据:git => 'https://github.com/xiaofei86/LPLineChartView.g......

CocoaPods建立自己的Podspec(三)

CocoaPods的安装与使用(一)

CocoaPods的原理与技巧(二)

CocoaPods建立自己的Podspec(三)

CocoaPods诞生的时代背景(四)

创建自己的 Pod 十分简单。只需要创建 .podspec,编辑好 .podspec 的必要信息,提交到 Git,然后就可以在其他项目中使用了。

如果想了解其中的原理,可以查看这篇文章。

如果是 Swift ,可以在此基础上参考这篇文章。

创建.podspec

首先在你的项目中使用如下命令创建名为 LPPushService 的 LPPushService.podspec(当然你也可以使用v......

CocoaPods诞生的时代背景(四)

CocoaPods的安装与使用(一)

CocoaPods的原理与技巧(二)

CocoaPods建立自己的Podspec(三)

CocoaPods诞生的时代背景(四)

*本文摘录自[NSHipster]

文明是建立在道路,桥梁,运河,下水道,管线,电线和光纤这些基础设施之上的。只要设计和施工得当,它们可以帮助社会成倍的发展。

唯一的问题就是可扩展性。

不管是在一个新的区域容纳上百万家庭还是整合大量的开发者到新的语言环境中去,挑战都是相同的。

在 Objective-C 的情况下,CocoaPods 提供了一个绝佳的整合合作开发的工具,并且在快速发展的......

使用CGGeometry方法获取CGRect数据

CGGeometry 中提供了取特定 CGRect 值的便捷方法。

CGRectGetMinX

CGRectGetMinY

CGRectGetMidX

CGRectGetMidY

CGRectGetMaxX

CGRectGetMaxY

CGRectGetWidth

CGRectGetHeight

这其中CGRectGetMidX,CGRectGetMidY,CGRectGetMaxX,CGRectGetMaxY四个方法十分有用。用CGRectGetMaxX代替frame.origin.x + frame.size.width将使代码更加清晰、语义上也更为生动直观。......

UIView在AutoLayout下的布局过程

简介

使用 Auto Layout 将 View 显示在屏幕上需要的经过三个步骤。

更新约束(updateConstraints)

通过约束关系计算出center和bounds对subviews进行布局(layoutSubViews)

将布局好的view显示到屏幕(drawRect)

与之相关的方法有如下八个。

setNeedsUpdateConstraints:将 view 标记为需要更新约束,并在稍后触发updateConstraitsIfNeed。

updateConstraitsIfNeed:系统会在每个布局节点自动调用此方法。只有约束被标记为需要更新......

属性内存管理相关修饰符的使用规范

简介

strong/retain:只能修饰对象。持有对象。两者等价。

assign/unsafe_unretained:最好只修饰基础数据类型。修饰对象时,不持有对象。对象销毁后会属性值不会自动清空从而造成悬垂指针。两者等价。

weak:只能修饰对象。不持有对象。当对象被销毁后,属性值会自动清空。

copy:只能修饰对象。与 strong 类似,但是赋值的是被复制的对象。

strong/retain

修饰语义

此特质表明该属性定义了一种“拥有关系”(owning relationship)。为这种属性设置新值时,设置方法会先保留新值,并释放旧值,然后再将新值设置上去。

......