热门标签 | 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



推荐阅读
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • ScrollView嵌套Collectionview无痕衔接四向滚动,支持自定义TitleView
    本文介绍了如何实现ScrollView嵌套Collectionview无痕衔接四向滚动,并支持自定义TitleView。通过使用MainScrollView作为最底层,headView作为上部分,TitleView作为中间部分,Collectionview作为下面部分,实现了滚动效果。同时还介绍了使用runtime拦截_notifyDidScroll方法来实现滚动代理的方法。具体实现代码可以在github地址中找到。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 使用这个技巧要达到的目标:一般来说,模型和控制器你都不会有相同的类名字。让我先创建一个取名为post的model。classPostextendsModel{}现在 ... [详细]
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社区 版权所有