Swift 关于Protocol扩展的静态特性

实验样本代码//声明一个协议 protocol SharedString { func methodForOverride() -> Void func methodWithoutOverride() -> Void }//扩展协议,实现默认实现 //注意方法methodWithoutOverride 中调用了 methodForOverride 方法,这里有一个上写文切换的问题 e...
阅读(63) 评论(0)

Block存储域探析

接《Block截获自动变量实现与__block修饰符内部实现》我们继续探讨Block留下的问题 1,__Block_byref_i_0 *__forwarding;这个指向自身的指针是什么鬼,有什么作用,什么时候用? 2,Desc_0结构体中多出来的void (*copy) void (*dispose)这两个方法有什么作用,什么时候用? Block 和 __block变量的实质 名称 实...
阅读(986) 评论(0)

Block截获自动变量实现与__block修饰符内部实现

Block截获自动变量的实现解析 __block修饰符内部实现解析...
阅读(133) 评论(0)

Block实现

Block是如何实现的我们通过clang编译出Objective-C文件对应cpp文件,去看他的实现方式,对比不同样式的block的不同, 从中得到它的实现思想无参数Block的基本实现#import "ViewController.h"typedef void(^WxsBlock) ();@interface ViewController ()@end@implementation ViewCo...
阅读(118) 评论(0)

iOS能源优化

iOS能源优化首先我们需要知道为什么存在这个问题:四个字:用户体验在能源效率上来讲,用户体验表现为- 极佳的反应速度 - 系统在复杂操作上的处理速度 - 及时、适时的冷却设备 - 电池续航 所以,对于用户和开发者能源效率时一个非常重要的点我们先设想一下应该具备什么条件,如何做?- iOS系统的节能技术,这是根本 - 手机硬件的节能技术,系统本身软件的节能技术 - 智能的网络操作,允许开发者对网络行为...
阅读(864) 评论(0)

iOS应用被杀死后继续获取用户地理位置

转自:点击打开链接苹果官方在iOS7.1以后对CoreLocation SDK进行更新,允许开发者在App被杀死的情况下,仍然可以获取用户的地理位置并且做一些操作.前期准备:打开后台定位功能plist文件配置这两项接下来是最核心的地方,创建一个CLLocationManager子类:.h文件CLLocationManager.h.m文件单例的生成与初始变量的初始化最重要的部分:限制触发机制最后是A...
阅读(717) 评论(0)

iOS内存管理——autorelease方法解析

iOS内存管理——autorelease autorelease 自动释放 注意:autorelease和ARC 是完全不同的两个东西,没有任何联系。 autorelease和ARC autorelease的内存管理方式是在autoreleasePool释放的时候对其中持有的对象依次进行release操作,这样做有个隐患就是如果autoreleasePool迟迟不能被释放,则会有大量的对象在内存中,...
阅读(138) 评论(0)

iOS内存管理——alloc/release/dealloc方法的GNUstep实现与Apple的实现

iOS内存管理——alloc/release/dealloc方法的GNUstep实现与Apple的实现接上篇关于iOS内存管理的规则考我们通过alloc/release/dealloc方法的具体实现来深入探讨内存管理。什么是GNUstep `GNUstep`是`Cocoa`框架的互换框架,从源代码的实现上来说,虽然和Apple不是完全一样,但是从开发者的角度来看,两者的行为和实现方式是一样,或...
阅读(669) 评论(0)

关于iOS内存管理的规则思考

关于iOS内存管理的规则思考 自己生成的生成的对象,自己持有。 非自己生成的对象,自己也能持有。 不在需要自己持有的对象时释放。 非自己持有的对象无法释放。 注:这里的自己是对象使用的环境,理解为编程人员本身也没有错对象操作和Objective-C方法对应 对象操作 Objectivew-C方法 生成并持有对象 alloc/copy/mutableCopy/new或以此开头的方法...
阅读(2616) 评论(0)

iOS 切换到MRC环境下打印 retainCount 始终是-1或者一长串证书

根据苹果的官方文档https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html上面写着应该返回的是这个对象的UINT_MAX, 并且不会释放, 这个UINT_MAX最大二进制为(11111111...
阅读(381) 评论(0)

runloop 与autorelase对象、Autorelease Pool 在什么时候释放

转载自:http://blog.csdn.net/leikezhu1981/article/details/51246684iOS的运行时是由一个一个runloop组成的,每个runloop都会执行下图所示的一些步骤:每个runloop中都创建一个Autorelease Pool,并在runloop的末尾进行释放,所以,一般情况下,每个接受autorelease消息的对象,都会在下个runloop...
阅读(180) 评论(0)

UIView中autoresizingMask属性研究

在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高。123456789enum {   UIViewAutoresizingNone                 = 0,   UIViewAutoresizingFlexibleLeftMargin   = 1    UIViewAutoresi...
阅读(185) 评论(0)

算法_二叉树反转

前一阵homebrew作者面试谷歌被拒,原因之一是这位老兄无法反转出二叉树。 既然众公司面试都爱用这货面试,咱也来做一下。 先定义二叉树类 public class BinaryTreeNode { public string Name { get; set; } public T Data { get; set; } public B...
阅读(192) 评论(0)

Podfile语法

本文翻译自官方的Podfile Syntax Reference,也参考了之前一位博主的翻译,若翻译中有什么异议,欢迎留言指正。PodfilePodfile文件详细描述了一个或多个工程中targets的依赖关系。Podfile会默认创建一个隐式的目标链接到工程中用户的第一个target,名称为“default”。一个Podfile可以非常简单:pod 'AFNetworking', '~> 1.0...
阅读(205) 评论(0)

iOS判断字符串是否包含emoji表情

- (BOOL)isContainsEmoji:(NSString *)string { __block BOOL isEomji = NO; [string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequence...
阅读(191) 评论(0)
149条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:202196次
    • 积分:3036
    • 等级:
    • 排名:第11173名
    • 原创:112篇
    • 转载:31篇
    • 译文:2篇
    • 评论:21条
    最新评论