热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[10秒学会]iOS9新特性之常见关键字

2019独角兽企业重金招聘Python工程师标准ViewController.m01-iOS9新特性之常见关键字Createdbyxiaomageon151022.

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

//
// ViewController.m
// 01-iOS9新特性之常见关键字
//
// Created by xiaomage on 15/10/22.
// Copyright © 2015年 xiaomage. All rights reserved.
//#import "ViewController.h"@interface ViewController ()/*nullable作用:表示可以为空nullable书写规范:// 方式一:@property (nonatomic, strong, nullable) NSString *name;// 方式二:@property (nonatomic, strong) NSString *_Nullable name;// 方式三:@property (nonatomic, strong) NSString *__nullable name;*/
//@property (nonatomic, strong) NSString *__nullable name;
//@property (nonatomic, strong) NSString * name;/*nonnull: non:非 null:空书写格式:@property (nonatomic, strong, nonnull) NSString *icon;@property (nonatomic, strong) NSString * _Nonnull icon;@property (nonatomic, strong) NSString * __nonnull icon;*//*在NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END之间,定义的所有对象属性和方法默认都是nonnull*/// 方法中,关键字书写规范
/**- (nonnull NSString *)test:(nonnull NSString *)str;- (NSString * _Nonnull)test1:(NSString * _Nonnull)str;*///@property (nonatomic, assign) int age;/*null_resettable: get:不能返回为空, set可以为空// 注意;如果使用null_resettable,必须 重写get方法或者set方法,处理传递的值为空的情况// 书写方式:@property (nonatomic, strong, null_resettable) NSString *name;*//*_Null_unspecified:不确定是否为空书写方式只有这种方式一@property (nonatomic, strong) NSString *_Null_unspecified name;方式二@property (nonatomic, strong) NSString *__null_unspecified name;*/@end@implementation ViewController//- (void)setName:(NSString *)name
//{
// if (name == nil) {
// name = @"123";
// }
// _name = name;
//}
//- (NSString *)name
//{
// if (_name == nil) {
// _name = @"123";
// }
// return _name;
//}// iOS9新出的关键字:用来修饰属性,或者方法的参数,方法的返回值
// 好处:
// 1.迎合swift
// 2.提高我们开发人员开发规范,减少程序员之间交流// 注意:iOS9新出关键字nonnull,nullable只能修饰对象,不能修饰基本数据类型
//- (UIView *)view
//{
// if (_view == nil) {
// [self loadView];
// [self viewDidLoad];
// }
//
// return _view;
//}
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.// _Null_unspecified:// self setName:(NSString * _Nullable)}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end


__kindof
 

// __kindof:相当于,表示某个类或者他的子类。

// 设计模型中可以使用,当给某个类提供类方法,想让外界调用能看到创建什么对象,并且不报警告。

//
// ViewController.m
// 02-iOS9新特性之泛型
//
// Created by yz on 15/10/20.
// Copyright © 2015年 yz. All rights reserved.
//#import "ViewController.h"#import "Person.h"#import "IOS.h"
#import "Java.h"@interface ViewController ()// 定义泛型:确定类型
@property (nonatomic, strong) NSMutableArray *array;@end@implementation ViewController// 泛型:限制类型// 开发中使用场景:
// * 限制集合中的类型,注意:只能检测方法的调用,因为声明的泛型,只能放在方法中
// * 当一个类在声明的时候,某个对象的属性不确定,只有创建对象的时候才确定,可以使用泛型// 泛型书写格式:放在类型后面,表示限制这个类型.// 好处:
// 提高程序员开发规范,减少交流成本。
// 从数组或者字典取值,都是id类型,不能调用点语法,但是使用泛型,就可以了。// 自定义泛型:模仿数组// 需求:假设有个Person,这个人会编程语言,但是在定义的时候不确定,只有在创建对象的时候才确定。
// language属性的类型就有讲究了
// id 类型:表示可以传任何对象
// Launguage类型,在赋值的时候没有提示
// 泛型,声明泛型,在创建对象的时候,确定泛型,在赋值就有提示了。// 泛型中协变,逆变,用于转换类型
// 默认带有泛型的变量,互相赋值有报警告,使用协变,逆变,就能解决.
// 协变(__covariant): 向上转型, 子类转父类
// 逆变(__contravariant):向下转型 父类转子类- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.Person *person = [[Person alloc] init];// person.language = [[IOS alloc] init];Person *person1 = [[Person alloc] init];// Person = Person1;(协变)//person1 = person;(逆变)// person1.language = [[Language alloc] init];}- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{}@end

 


转:https://my.oschina.net/zhaodacai/blog/673300



推荐阅读
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
author-avatar
别喷我我还小_216
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有