2020年9月
iOS 和 macOS apns 调试工具
通过使用该工具我们可以轻松调试iOS或macOS的系统推送,我们只需要准备一个证书,准备设备token,就可以直接和 apns 通信并发送推送信息。通常我们可以用次工具判断证书是否正确配置。
Pusher
OS X and iOS application and framework to play with the Apple Push Notification service (APNs)
Java 注解的作用及本质
什么是注解 (Annotation)
注解其实就是代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相对应的处理。
为什么要用注解
注解可以给类、方法上注入信息。
常见注解
在java.lang
包下存在着5个基本的Annotation,其中有2个Annotation我们是非常常见的了。
@Overried
@Overried是告诉编译器要检查该方法是实现父类的,可以帮我们避免一些低级的错误。
比如当我们写了@Overried之后,我们在实现equals()方法的时候,把euqals()打错了,那么编译器就会发现该方法并不是实现父类的,于是就会给予错误。
@Deprecated
该注解也非常常见,Java在设计的时候,可能觉得某些方法设计得不好,为了兼容以前的程序,是不能直接把它抛弃的,于是就设置它为过时。
自定义注解
我们自定义的注解是可以带成员变量的,定义带成员变量的注解叫做元数据Annotation
public @interface MyAnnotation {
String username();
}
使用注解
// 注解拥有什么属性,在修饰的时候就要给出相对应的值
@MyAnnotation(username = "kangfenmao")
public void add() {}
读取注解
@MyAnnotation(username = "kangfenmao")
public void add() {
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
String username = annotation.username();
}
总结
注入对象的步骤:
- 得到想要注入的对象属性
- 通过属性得到注解的信息
- 通过属性的写方法将注解的信息注入到对象上
- 最后将对象赋给类。
注解其实就是两个作用:
- 让编译器检查代码
- 将数据注入到方法、成员变量、类上
如果没有响应注解内容,注解可以说是没有实用价值。让注解真正发挥作用,主要就在于注解处理方法。
JDK 常用注解
- 基本 Annotation 在 lang 包下,用于常用于标记该方法,抑制编译器警告等
- 元 Annotaion 在 annotaion 包下,常用于修饰其他的 Annotation 定义
install ext-zip for Mac
升级 macOS 10.15.6 后,发现 php 版本号已经升级到了 php7.3
运行 php -v
PHP 7.3.11 (cli) (built: Jun 5 2020 23:50:40) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies
问题
但是比较坑的是默认没有安装 zip 扩展,而 Laravel 是需要 ext-zip 扩展包的:
composer global require laravel/installer
brew 安装 [email protected]
brew update
brew install [email protected]
brew link [email protected] --force
必须要使用 force
编译安装 [email protected]
本文不再展开,参考这篇文章:https://segmentfault.com/a/1190000022699382