IOS
tozheng
这个作者很懒,什么都没留下…
展开
-
谈谈Objective-C的警告
谈谈Objective-C的警告一个有节操的程序员会在乎自己的代码的警告,就像在乎饭碗边上有只死蟑螂那样。——@onevcat重视编译警告现在编译器有时候会很吵,而编译器给出的警告对开发者来说是很有用的信息。警告不会阻止继续编译和链接,也不会导致程序不能运行,但是很多时候编译器会先你一步发现问题所在,对于Objective-C来说特别如此。Clang不仅对于明显的错误能够提转载 2013-08-15 11:49:28 · 627 阅读 · 0 评论 -
Xcode设置项之Architectures和Valid Architectures
iPhone指令集本文所讲的内容都是围绕iPhone的CPU指令集(想了解ARM指令集的同学请点击这里),现在先说说不同型号的iPhone都使用的是什么指令集:1234ARMv8/ARM64 = iPhone 5s, iPad Air, Retina iPad MiniARMv7s = iPhone 5, iPhone 5c, iPad 4ARM转载 2014-12-04 16:16:37 · 877 阅读 · 0 评论 -
iOS应用程序生命周期
iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验。//开发app,我们要遵循apple公司的一些指导原则,原则如下:1、应用程序的状态状态如下:Not running转载 2014-12-07 21:23:24 · 406 阅读 · 0 评论 -
TCP/IP, WebSocket 和 MQTT
TCP/IP, WebSocket 和 MQTT按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP和MQTT是应用层的协议。在这三者之间, TCP是HTTP和MQTT底层的协议。大家对HTTP很熟悉,这里简要介绍下MQTT。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有转载 2015-03-23 11:08:15 · 795 阅读 · 0 评论 -
互联网推送服务原理:长连接+心跳机制(MQTT协议)
互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了,所以才会出现像MQTT这种轻量级低消耗的协议来维护长连接,那么要如何维护长连接呢: 在写之前,我们首先了解一下为什么android维护长连接需要心跳机制,首先我们知道,转载 2015-03-23 11:12:49 · 711 阅读 · 0 评论 -
FMDB官方使用文档-GCD的使用-提高性能(翻译
由于FMDB是建立在SQLite的之上的,所以你至少也该把这篇文章从头到尾读一遍。与此同时,把SQLite的文档页 加到你的书签中。自动引用计数(APC)还是手动内存管理呢? 两种都行,FMDB会在编译的时候知道你是用的哪一种,然后进行相应处理。 使用方法 FMDB有三个主要的类1.FMDatabase – 表示一个单独的SQLite数据库。转载 2015-05-15 15:52:04 · 411 阅读 · 0 评论 -
用UIButton的titleEdgeInsets属性和 imageEdgeInsets属性实现图片文字按要求排列
button可以设置 titleEdgeInsets属性和 imageEdgeInsets属性来调整其image和label相对位置,具体参考http://stackoverflow.com/questions/4564621/aligning-text-and-image-on-uibutton-with-imageedgeinsets-and-titleedgeinsets/5358259#5转载 2015-11-26 13:53:14 · 420 阅读 · 0 评论 -
给Xcode增加复制行、删除行快捷键的方法
http://stackoverflow.com/questions/551383/xcode-duplicate-delete-linehttp://stackoverflow.com/questions/10266170/xcode-4-duplicate-line适用于最新的Xcode 4.5.1运行:sudo chmod 666 /Applications/转载 2016-01-04 18:37:26 · 942 阅读 · 0 评论 -
iOS实时卡顿监控
在移动设备上开发软件,性能一直是我们最为关心的话题之一,我们作为程序员除了需要努力提高代码质量之外,及时发现和监控软件中那些造成性能低下的”罪魁祸首”也是我们神圣的职责.众所周知,iOS平台因为UIKit本身的特性,需要将所有的UI操作都放在主线程执行,所以也造成不少程序员都习惯将一些线程安全性不确定的逻辑,以及其它线程结束后的汇总工作等等放到了主线,所以主线程中包含的这些转载 2016-11-01 19:29:23 · 372 阅读 · 0 评论 -
深入解析iOS日志库CocoaLumberjack
我们在开发中经常需要打日志,iOS提供的NSLog只能在Xcode里面查看,这种方式有如下限制:1、只有处于Debug模式下才能在Xcode看到日志,其他情况无能为力。测试、产品等同事在测试和体验App的时候由于日志没有记录到本地,对于一些无法复现或者复现路径很难的问题肯定束手无策。2、发布到App Store的App,下载了这个App的用户出现了无法复现或者复现路径很难的问题,我们也只能转载 2017-09-04 17:00:30 · 1311 阅读 · 0 评论 -
Swift 断言
断言是一种非常有用的机制,它可以检查代码中的假设部分,确保错误能够被及时发现。今天我将探讨 Swift 中提供的断言调用以及它们的实现,这个话题是由读者 Matthew Young 提出的。我不会花太多时间讨论一般意义上的断言是什么或者在哪里使用它们。本文将着眼于 Swift 中提供的断言机制以及一些实现的细节。如果你想要了解如何在代码中充分利用断言,可以阅读我以前的文章 Proper U转载 2017-09-05 13:59:31 · 466 阅读 · 0 评论 -
XCode调试
LLDB:lowerlevel debugge/底层调试器。本节要介绍的所有的内容几乎都是针对LLDB的,因为苹果已将GDB替换成LLDB。Xcode4.0开始Xcode4.2,他们默认的编译器都是LLVM3.0,使用Clang作为编译器前端,取代了GCC作为编译器前端会有很多优势;到了Xcode4.5(同iOS6同时发布)默认的编译器就是LLVM4.0。LLVM搭配Clang,可以提供更快更转载 2014-12-04 19:07:47 · 1443 阅读 · 0 评论 -
Xcode 6异步测试
苹果在2013年推出了一款叫做XCTest的Xcode测试框架,实在是喜闻乐见。由于旧有的测试框架更新停滞数年,一些第三方测试工具和测试框架争相提供了许多新功能和新特性。这次XCode中内置XCTest的决策让开发者们重拾旧爱,并且苹果今年还在Xcode 6中添加了此前漏掉的几项功能,这当中的异步测试功能更是让我欣喜异常。如果我们的测试项目要执行一个异步任务,它可能会跑在其它的线程里,也可能会转载 2014-12-04 17:21:19 · 686 阅读 · 0 评论 -
xCode6制作动态及静态Framework
有没有写SDK或者要将一些常用的工具类做成Framework的经历? 你或许自己写脚本完成了这项工作,相信也有很多的人使用 iOS-Universal-Framework ,随着xCode6的发布,相信小伙伴们已经都知道了,xCode6支持做Framework了. 同时iOS-Universal-Framework开发者也宣布不在继续维持此项目的开发,建议开发者使用xCode6制作,目前网上也转载 2015-01-28 16:37:53 · 351 阅读 · 0 评论 -
Error saving in the keychain with iphone sdk
7down votefavorite9I use the Apple wraper for the keychain, and try to save a item on it (running in simulator, ios 4.1).I have not experience with the keychain before.I转载 2013-08-27 19:18:45 · 3450 阅读 · 0 评论 -
Keychain Group Access
From:http://useyourloaf.com/blog/2010/04/03/keychain-group-access.html Since iPhone OS 3.0 it has been possible to share data between a family of applications. This can provide a be转载 2013-08-28 14:06:28 · 992 阅读 · 0 评论 -
给iphone应用Default.png添加效果
在你的应用代理中找到application didFinishLaunching,添加以下代码:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{self.window.rootViewController = self转载 2013-11-20 14:23:48 · 728 阅读 · 0 评论 -
iOS 系列译文:Mach-O 可执行文件
iOS 系列译文:Mach-O 可执行文件当我们在Xcode中构建一个程序的时候,其中有一部分就是把源文件(.m和.h)文件转变成可执行文件。这个可执行文件包含了将会在CPU(iOS设备上的arm处理器或者你mac上的Intel处理器)运行的字节码。 我们将会过一遍编译器这个过程的做了些什么,同时也看一下可执行文件的内部到底是怎样的。其实,里面的东西比你看到的要多很多。 让转载 2013-11-21 19:54:20 · 1028 阅读 · 0 评论 -
IOS设备之armv6,armv7,armv7s,arm64
arm结构处理器,因为低功耗和小尺寸而闻名,几乎所有的手机都基于arm,其在嵌入式系统中应用非常广泛。它的性能在同等功耗的产品中也很出色。 对于IOS而言,模拟器并不运行arm的指令集,编译运行的是x86指令集。只有在IOS设备上,才会执行设备对应的arm指令集。 armv6, armv7, armv7s arm64实质是arm cpu的不同指令集,原则上是向下兼转载 2013-12-18 14:07:06 · 3455 阅读 · 0 评论 -
XCode5制作framework
一、Framework 简介(Introduction to Framework Programming Guide)Mac OS X 扩展了 framework 的功能,让我们能够利用它来共享代码和资源。通过 framework 我们可以共享所有形式的资源,如动态共享库,nib 文件,图像字符资源以及文档等。系统会在需要的时候将 framework 载入内存中,多个应用程序可以同时使用同转载 2014-09-24 15:44:18 · 573 阅读 · 0 评论 -
Objective-C中的字符串格式化输出
Objective-C中的字符串格式化输出uint64的格式化请用%lluint64的格式化请用%lld在使用诸如NSLog, [NSString stringWithFormat:]之类的函数时,都是基于c/c++风格的字符串格式化工作的.本来c/c++就没怎么用过,到iphone开发开发时掺合上NS系的对象,格式化输出更是一头的乱.看了一下Progr转载 2014-10-15 19:04:57 · 645 阅读 · 0 评论 -
iOS 7: Interactive Pop Gesture With Custom Back Button
Clambake for iPhone has a custom back button on all its navigation bars; it's a simple chevron with no text. The easiest way to implement a custom button like this is to simply set aleftBarButtonIte转载 2014-11-20 16:28:43 · 929 阅读 · 0 评论 -
谈谈Objective-C的警告
一个有节操的程序员会在乎自己的代码的警告,就像在乎饭碗边上有只死蟑螂那样。——@onevcat 重视编译警告现在编译器有时候会很吵,而编译器给出的警告对开发者来说是很有用的信息。警告不会阻止继续编译和链接,也不会导致程序不能运行,但是很多时候编译器会先你一步发现问题所在,对于Objective-C来说特别如此。Clang不仅对于明显的错误能够提出警告(比如某方法或者接口未实现),也能对转载 2015-01-07 11:25:53 · 365 阅读 · 0 评论 -
一个制作Xcode5插件的模板
原Github地址:https://github.com/kattrali/Xcode5-Plugin-Template安装将 本工成复制到~/Library/Developer/Xcode/Templates/Project Templates/Application Plug-in/Xcode5 Plugin.xctemplate。(如果路径不存在的话就创建Templates/Pr转载 2015-01-07 15:39:50 · 393 阅读 · 0 评论