iOS音频开发为Wav文件写入Header
WAVE 文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是"RIFF"。WAVE文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件 标识段和声音数据格式说明段两部分。NSData* WriteWavFileHeader(long...
View ArticleCocoa开发之NSOutlineView/NSTableView自动调整所有列宽
在做macOS app开发的时候,常常使用NSOutlineView/NSTableView来展示数据,有很多列时,当拖拽窗口需要实现所有列的宽同时在默认设置的宽的基础上等比扩大或缩小。//当拖拽窗口大小,NSOutlineView frame自动更改时,Column宽等比增减 [self.treeView...
View ArticleCocoa开发之沙盒机制及访问Sandbox之外的文件
iOS默认并且只能读写对应的沙盒目录。 OSX自从10.6系统开始引入沙盒机制,规定发布到Mac AppStore的应用,必须遵守沙盒约定。沙盒对应用访问的系统资源,硬件外设,文件,网络,XPC,都做了严格的限制,这样能防止恶意的App通过系统漏洞,攻击系统,获取控制权限,保证了OSX系统的安全。沙盒相当于给每个App一个独立的空间。要获取自己空间之外的资源必须获得授权。 macOS...
View ArticleCocoa开发之APP开机自启动
macOS app 开机自启动虽然有很多种方法,但是在需要上架APPStore的情况下,访问沙盒外的文件会被拒绝. 苹果官方提供了两种方式: Service Management framework 和 shared file list There are two ways to add a login item: using the Service Management framework,...
View ArticleCocoa开发把APP移动到/Applications文件夹
虽然说macOS app可以再任何地方运行,但是很多功能得要求app在Applications下才能好使,比如自动运行什么的功能 我还在想自己敲一个提示框.没想到已经有人实现了. - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {...
View ArticleApple向热更新下达最后通牒
之前开发者都收到了苹果2017年的新开发者审核协议更新通知 2017年3月8...注意..是女神节这天。大量开发者收到了被拒绝 被警告的邮件,内容如下: Dear Developer, Your app, extension, and/or linked framework appears to contain code designed explicitly with the capability...
View ArticleCocoa开发之NSWorkspace
NSWorkspace NSWorkspace继承自NSObject,属于AppKit.framework。一个NSWorkspace对象可以启动其他应用程序和执行各种文件处理服务。 概述 每一个App中有个一个共享的 NSWorkspace 对象,可以使用类方法sharedWorkspace去访问他,例如, 下边的语句使用 NSWorkspace 对象请求一个可以被TextEdit...
View ArticleAppKit Framework Reference
AppKit Cocoa开发常用框架,用来在macOS构建和管理您的应用程序的用户界面。响应用户交互和系统事件、 启用辅助功能,以及处理文件、 文本和图像。 概述 AppKit是一个包含你需要的所有对象,比如实现图形化,事件驱动的用户界面:windows、 面板、 按钮、 菜单、 滚动条、 和文本框。AppKit...
View ArticleiOS Xcode .bundle format unrecognized, invalid, or unsuitable
Xcode 8.2.1 (8C1002) 运行很来一个很老的项目,项目使用bundle与framework进行开发。出现bundle不能识别的信息:CodeSign...
View Article基于HTTP/2与Token的APNs新协议
新的APNs协议基于HTTP/2,一种是使用Universal Push Notification Client SSL 证书,一种是使用Token,本文主要讲基于token的APNs协议。 基于HTTP/2与Token的 APNs 协议 APNs Provider(即,APP的后台) API 允许您向您的 iOS,macOS 设备上的应用程序和 Apple Watch 发送远程通知。API 基于...
View ArticleBundle打包Could not load the "XXX" image referenced from a nib in the bundle...
啊啊啊,这个问题遇到好多次,但是时间长了今天居然忘了怎么回事了。 把storyboard与xib 与图片资源都打入自定义bundle中,在nib文件中图片可以正常显示。 当run起了的时候会提示Could not load the "XXX" image referenced from a nib in the bundle with identifier XXX 排查...
View Article老站长为什么才开头条号?
虽然接触计算机比较早。但是仍然思维受限,很难想象零几年的时候,互联网刚刚兴起,而我恰好是一个计算机爱好者,又凑巧我对网站,对黑客技术,反着一切计算机事物(PS,除了游戏)都都很感兴趣。自然而然申请了自己的网站,更难想象,我的网站是在一个网站上申请的二级域名(后来几年才知道独立域名的概念)。页面也不能随便自定义。...
View Article为什么玩域名的总想做站?而做站的总会去玩域名?
当我兴致勃勃的开始做一个又一个站的时候,域名的选择常常都是很随意,随着seo等知识面的扩大,会发现“一个好域名是一个站成功的基础”,随后的时间里,选域名会花费大量的时候,慢慢的从站长变成了米农(域名爱好者的昵称,域名也成为玉米) 米农 米农的日常 第一位当然是出售自己的域名。 天天在各种域名QQ群,域名城,去发现其他人出售的域名。 在金米等平台关注然后抢注将要过期删除的域名。...
View ArticleiOS开发之预读取网络图片尺寸
在进行iOS开发时,经常会遇到这种情况: 常常想不下载图片,根据网络图片URL获取图片的尺寸。根据得到尺寸或者比例显示占位图片与轮廓预览区域。当完全下载下来图片后,替换上去。 TableView显示的时候要动态的设置Cell的高度,因为大量的图片不会一口气下载完成,所以想先拿到图片的高度把Cell的高度提前设置好。 根据图片尺寸或比例动态创建控件 方法...
View ArticleCocoa开发之获取Keychain证书列表
通过Security.frameworks - (IBAction)loadCerList1:(id)sender { NSDictionary *options = @{(__bridge id)kSecClass: (__bridge id)kSecClassCertificate, (__bridge id)kSecMatchLimit: (__bridge...
View ArticleUserAgent用户标识详解与应用
什么是UserAgent 顾名思义,即用户 代理,简称UA,它是一个特殊的HTTP头域,使得服务器端能够识别客户端使用的操作系统及版本、CPU...
View Article移动端开发使用viewport自适应h5页面
在移动端进行网页开发,首先要弄明白viewport在移动设备中的作用,meta中viewport的作用是让我们的网页更好的适配和响应各种分辨率不同的移动设备。 常用代码 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> 语法...
View ArticlemacOS安装MySQL教程
不借助任何第三方安装工具,手动进行MySQL的下载到卸载。 下载 访问MySQL的官网http://www.mysql.com/downloads/ 然后在页面中会看到社区版“MySQL Community Server”点击。...
View ArticlemacOS下安装配置PhpStorm
因为个人倾向于系统有的东西,就不使用其他工具一键安装。所以,本文使用macOS自带的Apache与PHP配置PhpStorm开发环境。 下载 https://www.jetbrains.com/phpstorm/download/ 得到dmg安装包 PhpStorm-2017.1.1.dmg 安装 双击PhpStorm-2017.1.1.dmg,将PhpStorm做到Application中。...
View ArticleiOS开发之"动态"更换App备用图标
iOS10.3苹果新增了一个API,字面意思也很好理解,设置可选的,备用的图标。[[UIApplication sharedApplication] setAlternateIconName:iconName completionHandler:^(NSError * error) { if (error) { NSLog(@"set icon error: %@",error); }...
View Article