首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

iOS @property探究(一): 基础详解你要知道的@property都在这里

你要知道的@property都在这里 本文大纲 Apple Adopting Modern Objective-C翻译 @property基本用法 @property修饰符详解 @property进阶话题...Apple Official Property Introduction Objective-C的属性(property)是通过用@property定义的公有或私有的方法。...当声明一个属性(property)的时候编译器默认情况下会自动生成相关的getter和setter方法 更好的声明一组方法。因为访问方法的命名约定,可以很清晰的看出getter和setter的用处。...或者,你也可以使用Xcode中的modern Objective-C转换器来自动转换你的代码。参考Refactoring Your Code Using Xcode。...为了方便使用,Objective-C允许使用点语法来访问getter和setter。

1.5K90

声明NSString属性的时候到底要不要采用copy限定词?

关于属性声明的限定词,我在下面这几篇文章中都有过介绍,这里不再赘述: 1,内存管理之MRC 2,Effective Objective-C 2.0——理解“属性”这一概念 3,Copy 和 Strong...通过这些文章,我们有了一个共识:在声明NSString类型的属性的时候需要采用copy内存管理策略。...(1)OC是一门面向对象的语言,面向对象三大特性:继承、封装、多态,所以我们是可以通过声明一个父类指针,去指向不同的子类对象的。...在封装的场景中,我们声明一个NSString类型的属性,它可能会指向NSString类型的变量,也可能会指向NSMutableString的对象,此时必须要使用copy,这一点问题没有。...(支持反方) (2)根据第一条,我们要求声明String类型的属性的时候使用strong,但是要同时保证在业务场景下不能将NSMutableString类型的变量赋值给NSString类型的属性。

19440

Objective-C中的内存管理

Reference Counting)简称ARC, 默认的是ARC模式,在ARC下是不能直接调用retain,release, releaseCount等方法的,需要在XCode中进行设置,设置如下: 把Objective-C...16 17 //用可变数组来测试内存的访问   NSMutableArray *array = [NSMutableArray arrayWithCapacity:3];   //可变的字符串   NSMutableString...*str = [[NSMutableString alloc] initWithString:@"aa"];   //这时的retain = 1;   NSLog(@"新建str时的 strRetain...24.450 Memory[2448:303] 移除一个元素后 strRetain = 2     ​2.NSString的retainCount的变化     ​    ​    ​用NSString声明的字符串变量的...:303] 传入的变量FomatRetainCount = 3 2014-08-03 20:18:37.240 Memory[2499:303] 传入的变量RetainCount = 3     ​Objective-C

76190

iOS设计模式——Category和 Extension

Category的用法 在Obj-C中,声明某一个已有类的Category扩展的方法如下: [html] view plaincopy @interface ClassName (CategoryName...File->New->File然后选择 Cocoa Touch Objective-C category.命名为ReverseNSString.系统会自动生成一个固定格式ClassName+CategoryName...@implementationNSString (ReverseNSString)   + (NSString*)reverseString:(NSString*)strSrc;   {       NSMutableString... *reversedString =[[NSMutableString alloc]init];       NSInteger charIndex = [strSrc length];       while...Category 不添加成员变量 @property 声明的属性只会自动生成get,set方法,并不能生成下划线的成员属性 延展(Extension) 类的延展就如同时“匿名”的分类,延展中声明的方法在类本身的

92230

iOS_泛型 Generics __covariant(协变) __contravariant(逆变)

在2015年的WWDC上苹果推出了Swift 2.0版本,为了让开发者能从Objective-C更好的过度到Swift上,苹果也为Objective-C带来了Generics泛型的支持。...__kindof UIView *> *subviews; // 这样写代码就没有警告了: UIButton *button = view.subviews.lastObject; 3、自定义泛型 声明一个...不同类型的泛型可以互相转换: MOCollection *collection; MOCollection *string_collection; MOCollection <NSMutableString...cnt NS_DESIGNATED_INITIALIZER; 参考: iOS 强大的泛型 Covariance and contravariance (computer science) 2015 Objective-C...Objective-C 自定义泛型 我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?

87910

Objective-C笔记

头文件包含类,类型,函数和常数的声明。 .m 源代码文件。这是典型的源代码文件扩展名,可以包含 Objective-C 和 C 代码。 .mm 源代码文件。...下图是一个名为MyClass的类声明介绍: class.png 声明 遵循C语言的规范,类声明一般定义在.h头文件中。类声明以关键字@interface作为开始,@end作为结束。...声明 下图为Objective-C内置数组类型的insertObject方法声明: method.png 方法实际的名字(insertObject:atIndex:)是所有方法标识关键的级联,包含了冒号...不过在Objective-C 2.0引入了新的语法以声明变量为属性, 并包含一可选定义以配置访问方法的生成。属性总是为公共的,其目的为提供外部类访问(也可能为只读) 类的内部变量的方法。...以下三种声明在运行时效力是完全相同的, 但是三种声明提供了一个比一个更明显的类型信息, 附加的类型信息让编译器在编译时可以检查变量类型,并对类型不符的变量提出警告。

87640

面经之《招聘一个靠谱的iOS》import CYLBlockExecutor.himport CYLBlockExecutor.himport CYLNSObject+RunAtDeallo

用 @property 声明 NSString、NSArray、NSDictionary 经常使用 copy 关键字,是因为他们有对应的可变类型:NSMutableString、NSMutableArray...在iOS开发中,你会发现,几乎所有属性都声明为 nonatomic。...“属性” (property)作为 Objective-C 的一项特性,主要的作用就在于封装对象中的数据。 Objective-C 对象通常会把其所需要的数据保存为各种实例变量。...这个概念已经定型,并且经由“属性”这一特性而成为 Objective-C 2.0 的一部分。 而在正规的 Objective-C 编码风格中,存取方法有着严格的命名规范。...所以, 用 @property 声明 NSString、NSArray、NSDictionary 经常使用 copy 关键字,是因为他们有对应的可变类型:NSMutableString、NSMutableArray

964100
领券