Mach-O
PE32/PE32+ 是 Windows 和 Intel 的 EFI 的二进制文件的可执行文件格式,ELF 是 Linux 和 Unix 的可执行文件格式,通用二进制格式(胖二进制格式)只在 OS X 上支持,Mach-O 是 OS X 的原生可执行文件格式。在 Unix 中,任何文件都可以通过简单的 chmod +x 命令标记为可执行文件,但是不一定能保证这个文件可以执行。OS X 目前只支持三种可执行文件格式:解释器脚本格式、通用二进制格式以及 Mach-O 格式。
可执行文件格式
magic(魔数)
用途
脚本
#!
UNIX 脚本和一些解释器脚本的使用格式...
Click to read more ...
0
views
synchronized相关知识
首先来说下,为什么写这篇文章。今天在 review 代码的过程中,发现下面单例的写法:
+ (instancetype)shareInstance{
static KHPickerUtil *manager = nil;
@synchronized(manager) {
manager = [[KHPickerUtil alloc] init];
}
return manager;
}
先不论这种方式写单例的问题,这里来讨论一下 @synchronized。
@synchronized 介绍
接触 iOS 开发有一段时间的开发者,相信大家都用过,@synchronized 是在 Objective-C 代码中快读创建互斥锁的一种便...
Click to read more ...
0
views
iOS,制作属于自己cocoapods,(framework,bundle)
[TOC]
缘由:
还是那个小活,需求方想用cocoapods来集成framework,由于之前,我从没有自己做过属于自己的cocoapods,所以也是一脸懵逼,各种查资料.
制作cocoapods步骤:
代码提交到github平台
创建.podspec
编辑.podspec
项目打tag
验证.podspec
注册 cocoapods trunk帐号
发布.podspec到cocoapods
1.代码提交到github平台
1.在github上创建一个新的仓库<图中的1、2一定要选择,2可以是其他的License>
2.clone代码到本地
3.相加自己的项目,然后提交到github上
git add .
...
Click to read more ...
iOS中,Framework和.a的打包及使用
最近在做一个小项目,需要给客户一个demo测试,有一部分核心代码暂时不想让客户知道,就想到了打包成framework或.a库。库有两种:
静态库:.a和.framework
动态库:.tbd和.framework
静态库和动态库的区别
.a文件肯定是静态库,. tbd肯定是动态库,.framework可能是静态库也可能是动态库
静态库在链接时,会被完整的复制到可执行文件中,如果多个App都使用了同一个静态库,那么每个App都会拷贝一份,缺点是浪费内存。类似于定义一个基本变量,使用该基本变量是是新复制了一份数据,而不是原来定义的;
动态库不会复制,只有一份,程序运行时动态加载到内存中,系统只会加载一次,多个程序共用一份,节约了内存。类似于使用变量的内存地址...
Click to read more ...
iOS开发错误集锦
在开发中.我们可能会遇到各种各样的问题.下面的问题是我近期遇到的
1.Xcode创建项目时点选Git后创建的项目一直报此错”Couldn’t communicate with a helper application.”
解决办法:
xcrun git config --global user.email your@email.com
xcrun git config --global user.name "your name"
注意事项:
邮箱注册github的邮箱
名字为github的用户名
2.SVN: Unexpected HTTP status 405‘Method Not allowed’on ‘/’
我是在add repository的时候遇到这个问...
Click to read more ...
0
views
iOS-导航栏颜色透明度渐变
最近公司项目,需要在首页实现一个效果,随着屏幕的滚动,导航栏背景色从没有到完全显示也就是透明度从0-1的过程.效果如下
实现方法
1.随着屏幕的滚动,改变导航栏的alpha,但是这样有一个不好的现象,就是导航栏leftItem,rightItem等也会跟着改变,这个效果不是我需要的,我需要的是只改变背景色的alpha
2.我在导航栏上添加了一个view,让view随着屏幕的滚动实现效果,这个时候,添加的view最好在最底层,这样才不会让你添加的view遮盖住其他控件.部分代码如下
在viewDidLoad中添加如下代码
[self.navigationController.navigationBar insertSubview:self.aplhaView atIndex:0];
...
Click to read more ...
0
views