objective-c
Xcode8 beta版无法输出NSLog问题
使用 Xcode8 的 Beta 版本进行 Objective-C/iOS 程序调试时,使用 NSLog 无法输出日志,同时输出以下内容: subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 0…
[iOS] 实现IIF功能和DECODE函数功能
iOS 开发过程中需要处理大量分支判断代码,需要大量使用 if、switch 等进行分支处理。代码编写和查看都可能出现潜在问题,使用 Objective-c 语言的自身特点,可以通过以下转换,优化分支判断处理的代码写法。关键是可以一行代码搞定各种分支判断。实现代码简化。 使用宏定…
[iOS]objective-c AES/DES/3DES等加密算法实现
objective-c 对 AES/DES/3DES 等加密提供了统一的加密方法 CCCrypt 进行实现,目前主要支持的算法有 @constant kCCAlgorithmAES128 Advanced Encryption Standard @constant…
[Xcode]编译时objc_msgSend错误的解决办法
之前开发的代码中需要强制使用一些苹果的私有 API,用了 objc_msgSend 方法进行调用,最近使用最新版本的 Xcode 进行编译时一致无法通过,后来通过度娘解决了这个问题,在此记录一下,修改方法也很简单,将 ENABLE_STRICT_OBJC_MSGSEND…
iOS开发之Objective-c的SHA224/SHA256/SHA384/SHA512加密算法的实现
之前在博文中实现的 SHA1 的安全性已经满足不了用户需求,今天把 SHA224/SHA256/SHA384/SHA512 的实现一并附上。 SHA 即 Secure Hash Algorithm(安全散列算法) 有多种不同位数的实现,常见的有 SHA224/SHA256…
iOS开发之Objective-c的AES加密和解密算法的实现
高级加密标准(Advanced Encryption Standard,AES),又称 Rijndael 加密法。 以下实现代码中分别为 NSData 和 NSString 增加了一个 Category。使用时直接调用即可。 需要注意的是,AES 并不能作为 HASH 算法…
iOS开发之APP进入后台禁止自动截图
iOS 在 7.0 以后,APP 进入后台后会把当前 APP 的 Window 状态记录,并对 Window 进行截图操作,会在 APP 的 Sandbox 的 Library\Caches\Snapshots\xxxx.xxx.xxx 文件夹中增加以下几个文件…
[iOS]UIWebView禁止前进和后退
使用 HTML5+Native 方式开发 APP 时,需要禁用掉 UIWebView 前进和后退功能,可以使用以下三种方式实现,三种方法同时使用亦可。 1.APP 内使用 native 代码修改 UIWebView 功能禁止。 直接覆盖 UIWebView 返回判断功能…
[iOS]UILabel取消自动Trim空格和换行等空白字符
iOS7.0 以后的 UILabel 会自动将 Text 行尾的空白字符全部去除,除了常见的半角空格(\0x20)和制表符 (\t) 之外,全角空格 (\u3000) 也被计算在内,甚至连多余的换行符(\r,\n)也被自动去除了。这一点虽然方便直接将控件赋值和无需取值后再…
[iOS]CoreGraph在64位模式下与NSString drawInRect冲突
iOS SDK 支持 64bit 后,大部分代码可以直接无缝转换并通过编译,但是这些代码在运行时可能会有所差异,所以开发时需要特别注意,Cocoa-Charts 在开发过程中就发现了这类问题。 问题现象:
CoreGraph 绘图方法与 NSString 的 drawInRect…
[iOS]使用UIActivityViewController实现AirDrop功能
AirDrop 是 iOS7 中新增的一个近距离分享功能,两个相邻的 iOS 设备可以通过 AirDrop 实现传递图片、文件等功能,有了 AirDrop 基本上可抛弃类似 Dropbox 的 ShareLink 和 PublicFolder 功能。 iOS7 的 SDK…
[iOS]Makefile交叉编译静态库TA-lib
为了使 Cocoa-Charts 支持客户端数据计算,需要为 Cocoa-Charts 增加技术分析数据计算功能,目前比较通用的是 TA-lib,但是 TA-lib 没有提供 iOS 版本的静态库文件,因此需要在 X86 平台上交叉编译适用于 iPhone 模拟器和 iPhone…
[iOS]Xcode5下使用Makefile编译找不到GCC
Xcode5 已经完全抛弃了 GCC 并切换到 LLVM,但并不是完全去除 GCC,只是对 GCC 等编译相关执行文件的位置进行了调整, 如果之前使用的是使用 Makefile 方式命令行编译 iOS APP 的话,Xcode4.6 下编写的脚本可能会无效,需要对 GCC…
iOS开发之Objective-c的MD5/SHA1加密算法的实现
Objective-c 实现 MD5 和 SHA1 算法相对还是比较简单的,可以直接调用系统的 C/C++ 共享库来实现调用 MD5 即 Message Digest Algorithm 5(信息 - 摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一
SH…
iOS开发之Objective-C中BASE64编码加密解密的使用
BASE64 使用常用的 URL 密文编码方式,用于在 HTTP 环境下传递较长的标识信息。采用 Base64 编码不仅比较简短,同时也具有不可读性。 以下地址是加密的迅雷专用下载地址,采用的是该编码。 如 thunder…
iOS开发之Objective-c几种不同的随机数算法(arc4random,random,srandom)
Objective-c 并没有直接提供随机数据生成的函数或方法,不过我们可以直接利用 c 的各种随机算法 以下是几种常见的随机数算法的使用,可以参照以下头文件 stdlib.h arc4random 不需要随机种子,在调用时自动生成随机种子 返回 [0,X) 的集合 int…