Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

iOS传感器开发——为APP添加手机密码、指纹进行安全验证

iOS传感器开发——为APP添加手机密码、指纹进行安全验证

iPhone5S后,iPhone加入了识别指纹的传感器,可以使用这个api在我们的APP中添加安全验证。一、引言iPhone5s之后,iPhone硬件上已支持进行指纹识别的功能,相应的,一些新的api也可以应用于APP中,进行用户安全的验证。目前,开发者可以使用的安全验证方式有两种,一种是通过手机密码进行验证,一种是通过识别指纹进行验证。二、为APP添加安全验证要使用安全验证的相关api,我们需要引入如下头文件:#import <LocalAuthe...
iOS运用runtime全局修改UILabel的默认字体

iOS运用runtime全局修改UILabel的默认字体

一、需求背景介绍在项目比较成熟的基础上,遇到了这样一个需求,应用中需要引入新的字体,需要更换所有Label的默认字体,但是同时,对于一些特殊设置了字体的label又不需要更换。乍看起来,这个问题确实十分棘手,首先项目比较大,一个一个设置所有使用到的label的font工作量是巨大的,并且在许多动态展示的界面中,可能会漏掉一些label,产生bug。其次,项目中的label来源并不唯一,有用代码创建的,有xib和storyBoard中的,这也将浪费很大的精力...
iOS9新特性——堆叠视图UIStackView

iOS9新特性——堆叠视图UIStackView

iOS9中,Apple又为开发者提供了一个新的布局视图,UIStackView可以帮助开发者更加简单的使用layout而不必手动添加太多布局约束。一、引言随着autolayout的推广开来,更多的app开始使用自动布局的方式来构建自己的UI系统,autolayout配合storyBoard和一些第三方的框架,对于创建约束来说,已经十分方便,但是对于一些动态的线性布局的视图,我们需要手动添加的约束不仅非常多,而且如果我们需要插入或者移除其中的一些UI元素的时...
iOS开发中标签控制器的使用——UITabBarController

iOS开发中标签控制器的使用——UITabBarController

一、引言与导航控制器相类似,标签控制器也是用于管理视图控制器的一个UI控件,在其内部封装了一个标签栏,与导航不同的是,导航的管理方式是纵向的,采用push与pop切换控制器,标签的管理是横向的,通过标签的切换来改变控制器,一般我们习惯将tabBar作为应用程序的根视图控制器,在其中添加导航,导航中在对ViewController进行管理。二、创建一个标签控制器通过如下的步骤,我们可以很简便的创建一个TabBarController:UITabBarCont...
iOS自定义的emoji表情键盘

iOS自定义的emoji表情键盘

一、关于emoji表情随着iOS系统版本的升级,对原生emoji表情的支持也越来越丰富。emoji表情是unicode码中为表情符号设计的一组编码,当然,还有独立于unicode的另一套编码SBUnicode,在OS系统中,这两种编码都有很好的支持。UI系统会自动帮我们将编码转义成表情符号,例如用SBUnicode如下代码: UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(100, 10...
Linux下使用POSIX Thread作多核多线程并行计算

Linux下使用POSIX Thread作多核多线程并行计算

POSIX线程库根据处理器、操作系统等特性封装了一台线程处理的接口。对于目前基于x86处理器架构的Linux系统来说,它往往会默认地将新创建的一个线程调度到与主线程不同的核中执行,如果这样能更好地平衡负荷的话。因此,在使用POSIX线程时,开发者不能断言当前创建的线程是否运行在与主线程相同的核心下,也不能断言一定运行在与主线程不同的核心下。当然,由于POSIX线程具有时间片轮询调度(Round-Robin),因此即便与主线程处于一个核心,使用旋锁的话,性能...
Java编码约定

Java编码约定

优秀的代码胜过冗长的文档。1. 文件编码源文件编码格式为UTF-8。2. 包名使用小写字母3. import不要使用通配符即,不要出现类似这样的import语句:import java.util.*;4. 列长限制一个项目可以选择一行80个字符或100个字符的列限制,超出列长限制时换行,换行时缩进至少4个空格,缩进不要用tab。5. 注释注释应少而精,代码的关键处应该有注释, 注释不能误导读者。6. 变量声明每次只声明一个变量,不要使用组合声明,比如int...
关于Java 8新引入语法特性的简要说明

关于Java 8新引入语法特性的简要说明

Java 8在语法上的主要改进就是新增了Lambda Expression以及Method Reference。由于官方网站的介绍稍显罗嗦,而且例子也有些复杂。我这里将提供一些更为浅显、直观的例子来帮助大家理解Java 8新引入的语法特性。Java 8中的Lambda Expression与C、C++都不太一样。Apple为LLVM Clang新开发了Blocks语法特性,使得GNU99标准C编译器在Clang编译器下就能使用Lambda Expressi...
Java JNI的使用基础

Java JNI的使用基础

JNI是Java与C、C++、Objective-C、Objective-C++等静态编译语言以及汇编语言相交互的接口。尽管目前而言,Java提供了诸多运行时性能较高的运行时库,但是在很多方面,尤其是高性能计算领域,Java提供的高效库还不是很多,因此我们可以通过JNI接口将我们用静态语言以及汇编编译连接为动态库后给Java应用程序加载调用。首先,Java为不同的操作系统平台提供了各自相适应的运行时环境以及根据不同的编译器提供了JNI头文件。JNI头文件一...
Objective-C如何自己实现一个for-each语法形式

Objective-C如何自己实现一个for-each语法形式

我们在用Objective-C编写程序时,很多时候会用到NSArray来作为线性列表来使用。我们在枚举这个数组所有元素的使用可以通过下列方法进行:for(id obj in anArray){}这种方式在编程语言术语中也被称为for-each形式。在C++11以及Java 5中,上述的in使用冒号:来表示。那么我们在Objective-C中是否可以自己定义一个类来实现for-each形式呢?当然可以!我们可以通过两种方式来实现这种简单的for-each语法...
Objective-C如何自己实现一个基于数组下标的属性访问模式

Objective-C如何自己实现一个基于数组下标的属性访问模式

在iOS6.0以及OS X10.8之后,Apple引入了一套非正式协议(informal protocol)与Objective-C语法直接绑定。当你实现了这其中的方法之后即可使用数组下标来访问属性元素。在Foundation库中,NSArray类实现了- (id)objectAtIndexedSubscript:(NSUInteger)idx方法。因此,我们可以这么来访问数组元素:NSArray *arr = @[@100, @200, @300];NS...
浅谈现代编程语言语法与标准库紧绑定现象

浅谈现代编程语言语法与标准库紧绑定现象

在C语言时代,语法与库的实现基本上是完全独立的。几乎所有的C语言标准库都是与编译器实现相对独立的,仅与当前系统环境耦合。这里只有函数不定参数的实现是需要根据语言规范,结合当前系统环境,由库<stdarg.h>自己实现的。C++98也基本如此。我们可以看到typeid是以关键字的形式出现的。尽管它返回一个类的对象,我们可以用typeid(expr).name()来访问表达式expr的类型名,不过它仍然可由编译器全权负责实现。而Java作为半动态语...
<< 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 >>