`
啸笑天
  • 浏览: 3436233 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论
文章列表

CFString​Transform

    博客分类:
  • ios
关于一种语言好不好用,你只需要衡量以下两种指标: API 的统一性 String 类的实现质量 NSString 是基础类库中的佼佼者。在那个其他语言 仍在 艰难地正理处理 Unicode 的时代,NSString是尤其让人印象深刻的。不仅仅是任何内容扔在它里面就能 正确工作 ,NSString 还能将字符串解析成语法标签、检测出内容中的首要语言,并且在任意你能想到的字符编码中转换。它好用得离谱。 它虽然很强大,但是不提提它的可无缝转换(toll-free bridged)的表兄弟 CFMutableString,或者更特殊的 CFStringTransform,是不负责任的。 ...

NSProcessInfo

    博客分类:
  • ios
  NSProcessInfo对象是用来获取进程的相关信息,包括进程的参数、PID、进程所在的系统的主机名、操作系统名、操作系统版本等等。(UIDevice获设备信息)   @autoreleasepool { //创建一个NSProcessInfo对象,表示当前进程 NSProcessInfo *processInfo = [NSProcessInfo processInfo]; //获取运行该进程的参数 NSArray *arr = [processInfo arguments]; ...
    https://github.com/Carthage/Carthage   说起 iOS 开发的包管理,大家就不由得会想起 CocoaPods, 它确实是一个强大的工具。但这次咱们来关注另外一个包管理工具 Carthage,如果说 CocoaPods 像一个航母,一应俱全,坚实稳固。那么 Carthage 就像一艘巡洋舰,机动灵活,攻击迅速。   Carthage 和 CoaoaPods 的区别   CoaoaPods 是一套整体解决方案,我们在 Podfile 中指定好我们需要的第三方库。然后 CocoaPods 就会进行下载,集成,然后修改或者创建我们项目的 wo ...

OptionSetType

  引言 先来看看一个UIView动画在Objective-C和Swift里面分别是怎么写的。 [UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionAllowUserInteraction animations:^{ // ... Animations } completion: nil]; UIView.animateWithDuration(0.3, delay: 0, options: [.CurveEaseIn ...
感谢:http://www.jianshu.com/p/f9e01c69a46f 关于GCD开发的一些事儿 字数4560 阅读1379 评论6 喜欢50   在之前我们介绍过NSOperation的一些东西,这次我们来聊一聊另一个iOS开发最经常使用的技术之一 --- GCD,GCD将线程的管理移到系统级别,你只需要定义好要执行的任务,然后丢到合适的Dispatch queue,GCD会负责创建线程来执行你的代码,由于这部分是处于系统级别,所以执行的性能通常非常高。GCD这部分代码苹果已开源,有兴趣的可以去下载了解一下:

@objc小结

 原文 1 、Selector(oc/swift)中调用swift类中私有方法需要在方法前声明 @objc   @objc private func privateSayHello(){         print("\(__FUNCTION__)")     } 比如NStime ,performSelector中用到Selector: [video performSelector:@selector(privateSayHello)]; 2、 swfit提供oc调用接口 在swift类前加 @objc可以提供给oc调用的接口(xcode7beta4之前 ...
从UIWindow获取: @implementation UIWindow (EZ_helper) - (UIViewController*) ez_topMostController { UIViewController *topController = [self rootViewController]; // Getting topMost ViewController while ([topController presentedViewController]) topController = [topController prese ...

__attribute__

    博客分类:
  • ios
https://blog.twitter.com/2014/attribute-directives-in-objective-c http://nshipster.com/__attribute__/ http://blog.sunnyxx.com/2014/09/15/objc-attribute-cleanup/   黑魔法__attribute__((cleanup)) http://blog.csdn.net/bingwa/article/details/6338267  Objective-C 之 Attribute & Package http://blog.cs ...
  打印多重Optional           var literalNil: String?? = nil 对于上面变量po只会输出nil (lldb) po literalNil   nil 但使用 fr v -r 或 fr v -R 可以打印详细信息 (lldb) fr v -r  literalNil   (String??) literalNil = nil (lldb) fr v -R  literalNil (Swift.Optional<Swift.Optional<Swift.String>>) literalNil ...
  Generator Swift中,Generator是任何实现了GeneratorType协议的类或者结构体。Generator可以理解为一个序列生成器。GeneratorType协议要求定义一个名为Element的别名,并实现一个next方法。 GeneratorType协议实现如下: protocol GeneratorType{ typealias Element mutating func

XCodeGhost

    博客分类:
  • ios
  XCodeGhost源码: https://github.com/XcodeGhostSource/XcodeGhost   XCodeGhost攻击原理: 从传统的利用应用漏洞攻击转为利用编程语言灵活性及开发工具配置修改的攻击,攻击手法隐蔽,攻击代码逆向分析非常具有迷惑性。 #本次攻击不是利用某个应用的漏洞进行攻击,而是修改XCode软件的加载动态库配置文件(具体哪个文件不介绍了,毕竟知道的人越少越好),使得所有使用被修改过的XCode软件开发的APP都被感染。 #利用Object-C的扩展类功能从而重写UIWindow父类的makeKeyAndVisible函数,从而导 ...
什么是柯里化函数: 柯里化(英语:Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。 简单说:柯里化函数就是,你有一个接收参数的函数,你只提供给它部分的参数,它不是立刻执行而是返回给你一个新的函数,这个新的函数接收剩下的参数,其内部则指向原始函数。当提供的参数完整了才会最终执行原始函数。 class Currying { // uncurried:普通函数 // 接收多个参数的函数(与类相关的函数,统称为方法,但是这里就直接说函数了,方便理解) func add ...
感谢:https://github.com/ChenYilong/iOS9AdaptationTips#1-demo1_ios9%E7%BD%91%E7%BB%9C%E9%80%82%E9%85%8D_ats%E6%94%B9%E7%94%A8%E6%9B%B4%E5%AE%89%E5%85%A8%E7%9A%84https  iOS9新特性_更灵活的后台定位 【iOS9在定位的问题上,有一个坏消息一个好消息】坏消息:如果不适配iOS9,就不能偷偷在后台定位(不带蓝条,见图)!好消息:将允许出现这种场景:同一App中的多个location manager:一些只能在前台定位,另一些可在后 ...

WatchConnectivity

WatchConnectivity是watchOS2里iPhone与AppleWatch通信的基础框架。 初始化设置 WatchConnectivity的原理是iPhone伴侣应用和AppleWatch上运行的WatchKit Extension之间通过WCSession会话进行通信。  当前Controller若需要响应WatchConnectivity的消息需要遵循WC ...
  watchOS2支持自定义表盘的Complication(苹果把表盘上显示的每一个控件称之为Complication)。苹果已经做使定制Complication在watchOS2的非常好的工作。WatchoOS现在包含ClockKit(表盘开发工具包),他包含了所有可定制化的Complication类型。自定义表盘的工作方式是非常简单的,只需要你的Watch Extension提供实现CLKComplicationDataSource协议,提供给ClockKit(表盘)数据。 Complication的五大分类: 一张图解释清楚:   Complication 布局 提供给表盘 ...
Global site tag (gtag.js) - Google Analytics