Category VS Extension

(一)category 1、什么是category category是Objective-C2.0之后添加的语言特性,别人口中的分类,类别其实都是指category。category的主要作用是为已经存在的类添加方法。除此之外,apple还推荐了category的另外两个使用场景。 可以把类的实现分开在几个不同的文件里面。这样做有几个显而易见的好处。 可以减少单个文件的体积。 可以把不同的功能组织到不同的category里。 可以由多个开发者共同完成一个类。 可以按需加载想要的category
分类: 其他 发布时间: 04-16 22:34 阅读次数: 0

iOS App Extension(应用扩展)

1.创建today extension 有两个途径: 1.点击工程->右边TARGETS下面有个加个按钮->点击弹出会话框,选择对应的扩展 2.点击File->new->Targets->点击弹出会话框,选择对应的扩展 两种方式都可以看到下图所示的会话窗口 选择Today Extension,点击next 命名文件(本文命名TodayExtension),在弹出框中选择Activate,激活这个scheme,这样在你的工程里面会看到如下图所示的文件 可以看到工程下面多了一个目录TodayExt
分类: 其他 发布时间: 04-16 22:34 阅读次数: 0

UIButton实现左边文字,右边图片

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28285625/article/details/88826976 //要先设置图片 [self.btn setImage:btnImage forState:UIControlStateNormal]; [self.btn setImage:btnImage forState:UIControlStateHighlighted]; _btn.titleEdgeInse
分类: 其他 发布时间: 04-16 22:33 阅读次数: 0

Effective Objective-C2.0 笔记(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28285625/article/details/88646665 起源 Objecti-C与C++和Java等面向对象语言类似,不过很多方面有所差别。若是用过另一种面向对象语言,那么就能理解Objective-C所用的许多范式与模板了。然而语法上也许会显得陌生,因为该语言使用“消息结构”(message structure)而非“函数调用”(function calling)。Object
分类: 其他 发布时间: 04-16 22:33 阅读次数: 0

Effective Objective-C2.0 笔记(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28285625/article/details/88978390 在类的头文件中尽量少引用其他头文件 与C和C++一样,Objective-C也使用“头文件”(header file)与“实现文件”(implement file)来区隔代码。 如果AAA类的每个实例都应该有一个BBB,于是直接为其添加一项属性 @property (nonatomic,strong) BBB *b; 然而
分类: 其他 发布时间: 04-16 22:33 阅读次数: 0

Effective Objective-C2.0 笔记(三)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28285625/article/details/89095362 多使用字面量语法(literal syntax),少用与之等价的方法 Objective-C以语法繁杂而著称。事实上的确是这样。不过从Objective-C1.0起,有一个非常简单的方式能创建NSString对象。这就是“字符串字面量”(string literal),其语法如下: NSString *someString
分类: 其他 发布时间: 04-16 22:32 阅读次数: 0

Effective Objective-C2.0 笔记(四)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28285625/article/details/89107252 第4条:多用类型常量,少用#define预处理指令 要点 不要用预处理指令常量。这样定义出来的常量不含类型信息,编译器只是会在编译前执行查找与替换操作。即使有人重新定义了常量值,编译器也不会产生警告信息,这将导致应用程序中的常量值不一致。 在实现文件中使用static const来定义“只在编译单元内可见的常量”(trans
分类: 其他 发布时间: 04-16 22:32 阅读次数: 0

Effective Objective-C2.0 笔记(五)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28285625/article/details/89156977 用枚举表示状态、选项、状态码 枚举只是一种常量命名方式。某个对象所经历的各种状态可以定义为一个简单的枚举集(enumeration set)。比如说,可以用枚举表示套接字连接(socket connection)的状态: enum(NSUInteger,EocconnectionState) { Eocconnect
分类: 其他 发布时间: 04-16 22:32 阅读次数: 0

回归CSDN,继续技术分享之路

版权声明:转载请标明出处 https://blog.csdn.net/panyongjie2577 https://blog.csdn.net/panyongjie2577/article/details/88363425 回归CSDN,继续技术共享之路 前世今生 下一步计划 前世今生 与CSDN结缘是在2010年,当时正在实习,作为一个新出道的小菜鸟,CSDN为我提供了大量的技术资料支持,让我度过了最艰难的第一年。我也深知作为新人对于入门是如何的艰难,所以在工作的期间也写下了多篇技术博客分享
分类: 其他 发布时间: 04-16 22:31 阅读次数: 0

Android 使用Service进行下载并在状态栏显示进度

版权声明:转载请标明出处 https://blog.csdn.net/panyongjie2577 https://blog.csdn.net/panyongjie2577/article/details/88363801 Android 自动更新之状态栏下载 声明 实现过程 下载进度布局xml 创建下载任务Service 声明 这是一篇我之前我在2012年写的博客,里面有些东西是基于2012年时安卓的系统来进行编写的,现在写这篇博客的原因是想尽量恢复之前丢失的博客。此博客里面提及的技术还是能
分类: 其他 发布时间: 04-16 22:31 阅读次数: 0

MVP架构的简单使用

版权声明:转载请标明出处 https://blog.csdn.net/panyongjie2577 https://blog.csdn.net/panyongjie2577/article/details/88619303 文章目录 前言 参考资料 概述 MVP模式 概念 基本的Model-View-Presenter架构 环境准备 引用的第三方框架 模型类 数据适配器 布局文件 简单示例搭建 创建基础接口 创建Contract接口 创建Presenter类 创建Fragment类 创建Act
分类: 其他 发布时间: 04-16 22:31 阅读次数: 0

Dagger2 快速上手使用与实现原理分析(一)

版权声明:转载请标明出处 https://blog.csdn.net/panyongjie2577 https://blog.csdn.net/panyongjie2577/article/details/88621179 参考资料 – 深入浅出Dagger2 : 从入门到爱不释手 https://www.jianshu.com/p/626b2087e2b1 Android_Dagger2篇——从小白最易上手的角度 + 最新dagger.android https://www.jianshu.
分类: 其他 发布时间: 04-16 22:31 阅读次数: 0

Dagger2 高级特性使用与实现分析(二)

版权声明:转载请标明出处 https://blog.csdn.net/panyongjie2577 https://blog.csdn.net/panyongjie2577/article/details/89333460 文章目录 Component依赖 创建注入类 创建Module类 创建Component类 创建Compent依赖类 创建Activity类 创建Fragment类 SubComponent 使用多个SubComponent 创建Presenter 创建Module 创建S
分类: 其他 发布时间: 04-16 22:30 阅读次数: 0

ubantu16.04下ifconfig只有lo没有ens33

切换到root用户:sudo -s 执行:/sbin/dhclient 转载:https://blog.csdn.net/woay2008/article/details/70477736
分类: 其他 发布时间: 04-16 22:30 阅读次数: 0

navicat for python 读表时一直显示正在载入,卡死不动,MySQL中MySQL Error 2013: Lost connection to MySQL server during q

error 2013,在my.ini 中添加max_allowed_packet=200M ,依旧没有解决问题。 所以另寻它法。 在Navicat中,右击数据库名称,打开命令行,输入show processlist; 查看status是否有ID被锁,如果被锁,杀死ID,kill ID; 我的问题解决了。 转载:https://blog.csdn.net/qq_23167527/article/details/79036647
分类: 其他 发布时间: 04-16 22:30 阅读次数: 0

预测的两种主要类型:分类和回归的区别

分类和回归(有的书里直接叫预测)都是关于预测问题的,分类顾名思义就是预测是A类,B类还是C类,或者是0还是1等,而回归,则是预测这个值具体是多少,给出已知a值预测出对应值是 b值。
分类: 其他 发布时间: 04-16 22:29 阅读次数: 0

python下Windows和Linux路径问题

Windows下用反斜杠\,加上转义字符就变成了\\,如c:\\hello\\haha linux下使用斜杠/,如usr/bin/hello/haha 使用python时无论win还是Linux都可以这样写 import os print('c:', os.path.join('hello','haha'))
分类: 其他 发布时间: 04-16 22:29 阅读次数: 0

判断ImageView加载的是否是资源里的那张图片

通过 getDrawable().getCurrent().getConstantState()方法来获取ImageView当前的状态 和getResources().getDrawable(R.drawable.XXX).getConstantState()判断是否相等就可以了
分类: 其他 发布时间: 04-16 22:29 阅读次数: 0

安卓studio打印出日志输出

如下图所示,三个红圈是打印出日志的关键点,测试中用System.out和打印出,但是用Log.d()打印不出来 PS:1.若出现 mock 异常 ,在 app的gradle中 Android标签中添加 testOptions { unitTests.returnDefaultValues = true } 2.右键方法名运行
分类: 其他 发布时间: 04-16 22:28 阅读次数: 0

删除文件里的所有文件

/** * 递归删除文件和文件夹 * * @param file * 要删除的根目录 */ public static void deleteFile(File file,Context context) { if (file.exists() == false) { ToastUtil.showToast(context,"文件或文件夹不存在"); return; } else { if (fil
分类: 其他 发布时间: 04-16 22:28 阅读次数: 0