__attribute__简析

__attribute__表示属性,是Clang提供的一种源码注释,方便开发者向编译器表达诉求,一般以__attribute__(***)的方式出现在代码中。为了方便使用,一些常用属性被定义成了宏,经常出现在系统头文件中。比如NS_CLASS_AVAILABLE_IOS(9_0) 就是 __attribute__(availability(9.0)) 这个属性的简单写法。下面介绍一些可能会频...

BLE开发之CoreBluetooth

一、前言 BLE,全称蓝牙低能耗(Bluetooth Low Energy)技术是低成本、短距离、可互操作的鲁棒性无线技术,工作在免许可的2.4GHz ISM射频频段,隶属于蓝牙4.0规范。它从一开始就设计为超低功耗(ULP)无线技术。它利用许多智能手段最大限度地降低功耗。蓝牙低能耗技术采用可变连接时间间隔,这个间隔根据具体应用可以设置为几毫秒到几秒不等。另外,因为BLE技术采用非常快速的...

问题随记

1、SDWebimage加载内存中的资源 如果你用SD加载了一个本地的图片资源,然后你又在程序中修改了改图片的内容,你会发现,就算你再次使用sd去加载图片资源,即使是在主线中去操作,imageView的图片也不会更改。这是因为sd默认是将资源加载到内存中的,代码修改只是修改了存储上的内容。用下面的方法即可解决。将加载的options设置为SDWebImageRefreshCached...

常用URL Scheme

系统相关 应用名称 URL Scheme 短信 sms:// app store itms-apps:// 电话 tel:// 无线局域网 App-Prefs:r...

利用ruby脚本修改Xcode工程文件

实际开发中,我们都是用Xcode来修改工程文件,如果你这么觉得,那只是因为还没有遇到需要用到这个插件的地方。在利用jenkins构建自动化打包系统的时候,Xcode工程的部分配置,可能需要因不同的需要而实现自动修改。比如说修改Bundle ID以及描述文件等,这个时候xcodeproj插件就派上用场了。其实利用xcodeproj修改工程虽然大家没有直接操作过,但是肯定遇到过,我们常用的coc...

APNS机制的简单分析

提到消息推送,那就不得不提及苹果的APNS(Apple Push Notification Service)。我们首先来看一组数据(数据来自互联网) 1. 苹果在WWDC 2012上宣布每天发送70亿条消息推送 2. 有分析称在苹果的2019财年,iPhone活跃用户数量将突破10亿 那么你有没有想过,这几年移动互联网的快速发展,APNS推送数据保守估能达到将近千亿的量级,这么大的用户...

HealthKit简析及应用

感于微信和支付宝的计步捐赠,就想着能不能自己做一个小玩意儿来改变自己每天的计步量。不过事实是,现在的版本已经不行了,写入到苹果健康的计步数据都带有数据来源,不是微信和支付宝认可的数据来源,是不会计入排行的步数。既然如此,也还是初步了解了一下HealthKit,下面就主要介绍一下HealthKit里常用的应用场景 授权 任何应用想访问苹果健康中的数据,就必须要得到健康应用的授权才可以。苹果...

Cordova环境搭建及示例-iOS平台

Cordova环境搭建 1、安装nodejs 直接官网下载安装包安装即可nodejs官网 2、重置镜像地址 如果翻墙的话,可以略过这一步。否则可能会在下一步安装cordova时失败 打开终端,在管理员权限下分别输入下面命令,设置为国内镜像地址 npm config set registry http://registry.cnpmjs.org npm info undersco...

iOS10通知的简单应用

iOS10发布的同时苹果推出新的通知框架UserNotification,较之前的消息推送,新的框架有了质的变化。之前提到通知,理解的都是消息推送,新的通知框架在完善消息推送功能的基础上,加入了很多新的功能和权限。本文主要浅析两者的对比和实际应用 新功能概览 1、不再区分本地通知和远程通知,有了统一的行为。远程通知主要是消息推送、本地通知分为以下3种 1. UNTimeInterval...

浅析实现无限轮播的两种方式

轮播图使用的场景非常多,一般情况下不会使用到无限轮播。大多数的场景是轮播到最后一张图时强制切换contentOffset,这样最后一张和第一张图过渡就显得不平滑,接下来主要浅析两种实现平滑无限轮播的优化方案。为什么说是优化方案,一般在做广告轮播的时候,不会有太多数目的图片展示需求,也就5张左右,这个时候性能优化没有什么特别需要考虑。一旦数目变大,比如20,那这个时候就需要考虑性能优化 第一...