- 博客(41)
- 资源 (10)
- 收藏
- 关注
原创 如何调试 fastlane 源码
做iOS开发的同学相信基本上都用过,使用可以简化我们的开发和发布流程,例如自动化同步开发证书和描述文件和一键打包以及同步上传安装包到AppStore等等。如果想要深入的了解 fastlane 的工作流程,硬着头皮直接读源码,往往会比较低效。高效的做法是打断点一步步调试,来逐步了解整个流程。下面我将详细的介绍 fastlane 调试的整个流程。...
2022-08-26 11:46:29
437
1
原创 使用Signposts分析App性能
Signposts(路标)是OSLog家族成员之一,我们可以用它来测量和收集性能数据,以便结合Instruments来做可视化分析。其对应的API为,它主要有两大功能标记时间段(intervals)和单个时间点(events)。下面,我们来看看如何使用Signposts。...
2022-07-27 09:21:55
1350
原创 使用fastlane match自动化管理证书和描述文件
在我们进行团队开发的时候,避免不了证书和描述文件的管理,常规的有自动管理和手动管理两种方式。
2022-07-20 15:05:01
2063
转载 Objective-C Runtime 运行时之一:类与对象
原文地址:http://southpeak.github.io/blog/2014/10/25/objective-c-runtime-yun-xing-shi-zhi-lei-yu-dui-xiang/Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象
2015-05-05 10:34:44
506
转载 大小端模式
1. 什么是大端,什么是小端所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。采用大小模式对数据进行存放的主要区别在于在存放的字节顺序,大端方式将高位存放在低地址,小端方式将低位存放在高地址。采用大端方式 进行数据存放符合人类的正常思维,而采用小端方式
2015-04-12 14:24:31
856
原创 生成指定范围内的随机数
- (float)randomFloatBetween:(float)num1 andLargerFloat:(float)num2{ int startVal = num1*10000; int endVal = num2*10000; int randomValue = startVal +(arc4random()%(endVal - startVal))
2015-03-09 14:39:51
637
转载 读点大脑科学,学会变得更聪明
很多人发现自己经常忘记事情、效率一直在降低,以前从时间管理的角度写过很多针对性的建议,今天来看看科学家从科学研究的角度给出的建议,很多建议都能跟以前写的文章互相验证。下面的内容来自《让大脑自由》,作者约翰.梅狄纳(John Medina)博士是一位专注于人脑发展基因以及精神病遗传学问题的发展分子生物学家。对书中印象最深的一点,就是越运动,大脑越聪明。经常运动的人要比长时间做在办公桌前的人从
2015-03-06 15:56:44
535
转载 CocoaPod使用详解
CocoaPods详解之----使用篇作者:wangzz原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437转载请注明出处如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!一、什么是CocoaPods1、为什么需要CocoaPods在
2015-03-05 17:37:45
855
转载 进程间通信
原文链接:http://segmentfault.com/blog/cruise/1190000002400329总起OS X是MacOS与NeXTSTEP的结合。OC是Smalltalk类面向对象编程与C的结合。iCloud则是苹果移动服务与云平台的结合。上述都是一些亮点,但是不得不说苹果技术中的进程通讯走的是“反人类”的道路。由于不是根据每个节点上最优原则进行设计,苹果的进程间
2015-02-28 13:37:34
1179
原创 Dispatch Semaphore
用途:使用Dispatch Semaphore控制有限资源的访问说明:如果提交到 dispatch queue 中得任务需要访问某些有限资源,可以使用dispatch semaphore 来控制同时访问这个资源的任务数量。 dispatch semaphore 和普通的信号量类似,唯一的区别是当资源可用时,需要更少的时间来获得dispatch semaphore。使
2015-02-26 10:44:13
428
转载 POSIX 线程详解
一种支持内存共享的简捷工具POSIX(可移植操作系统接口)线程是提高代码响应和性能的有力手段。在本系列中,Daniel Robbins 向您精确地展示在编程中如何使用线程。其中还涉及大量幕后细节,读完本系列文章,您完全可以运用 POSIX 线程创建多线程程序。线程是有趣的了解如何正确运用线程是每一个优秀程序员必备的素质。线程类似于进程。如
2014-08-23 11:35:55
428
原创 只在Debug模式下打印日志
我们经常会遇到这样的需求:只在Debug版本打印日志,而发布版本(Release 版本)不打印日志。要实现这个很简单,两步就可以做到。在项目文件目录中找到 .pch 后缀名的文件,添加下面的代码//DEBUG模式下才打印日志#ifdef DEBUG#define NSLog(...) NSLog(__VA_ARGS__)#else#define NSLog(..
2013-11-06 11:19:29
1342
原创 Cocoa NSView右键菜单crash问题
一般我们让NSView弹出右键菜单,只需要设置NSView的menu即可:[aView setMenu:aMenu];但是在做项目的过程中,总是遇到右键菜单(好像打开是Open File或者Save File的时候)crash问题,调试发现是Cocoa库内部的问题。 所以就想着自己来实现弹出右键菜单,还果真没出现crash问题了。实现代码如下,仅需重写rightMouseDown:
2013-09-03 17:16:08
1504
原创 Mac 命令行安装Chrome插件
1. 在终端调用命令行实现Chrome插件安装/Applications/Google\Chrome.app/Contents/MacOS/Google\ Chrome --enable-easy-off-store-extension-install extensionPath其中extensionPath是指的插件文件位置(Chrome插件文件的后缀名是crx),例如~/Deskt
2013-08-27 17:16:32
9865
转载 socket编程指南
Socket是什么呢? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。见图一:图一 先从服务器端说起。服务器端先初始化Socket,
2013-08-07 10:25:55
920
原创 Cocoa-创建iTunes插件
1. 首先,创建一个Bundle工程2. 新建一个类,作为iTunes调用插件的入口例如,我新建了一个叫iTunesController的类
2013-08-01 23:26:24
1329
转载 [Cocoa]深入浅出Cocoa多线程编程之block与dispatch quene
深入浅出Cocoa多线程编程之block与dispatch quene罗朝辉 (http://www.cnblogs.com/kesalin/)本文遵循“署名-非商业用途-保持一致”创作公用协议 block 是 Apple 在 GCC 4.2 中扩充的新语法特性,其目的是支持多核并行编程。我们可以将 dispatch_queue 与 block 结合起来使用,方便进
2013-08-01 17:43:31
481
原创 Cocoa - 绘制渐进色文字
CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort]; CGContextSaveGState(context); CGContextTranslateCTM(context, 0.0f, self.bounds.size.height); CGContextScaleCTM(con
2013-07-30 22:36:51
1934
转载 UML类图关系大全
原文地址:http://www.cnblogs.com/riky/archive/2007/04/07/704298.html1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对
2013-07-03 23:30:20
493
转载 UML类图几种关系的总结
原文链接:点击打开链接在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动
2013-07-03 23:26:58
476
原创 创建Status Bar 应用
创建一个Cocoa Application工程,如下实现AppDelegate。AppDelegate.h 文件#import @interface AppDelegate : NSObject { NSStatusItem *statusItem;}@property (assign) IBOutlet NSWindow *window;- (IBAction)q
2013-07-02 13:49:04
839
原创 最近使用的文件
这个系统有提供API,每次成功打开一个文件后,我们只需调用NSDocumentController的方法:-(void)noteNewRecentDocumentURL:(NSURL *)absoluteURL; 将文件的URL传给该方法,系统会保存文件的信息,点击顶部的Open Recent菜单或者右键Dock就可以看到最近打开的文件列表。那么我们点击列表中的某一项,程序改如何响应呢?只需
2013-06-19 14:29:00
689
原创 NSCoding协议实例
NSCoding协议只定义了两个方法:-encodeWithCoder:和 -initWithCoder:。对象通过实现 -(void)encodeWithCoder:(NSCoder*)coder方法把它们自身编码进归档中。通过实现-(id)initWithCoder:(NSCoder *)coder方法解码它们自身。@interface WordInfomation :
2013-04-22 00:01:00
599
原创 NSUserDefaults存储颜色
@interface NSUserDefaults (Color)- (void)setColor:(NSColor *)theColor forKey:(NSString *)key;- (NSColor *)colorForKey:(NSString *)key;@end@implementation NSUserDefaults (Color)
2013-04-21 23:37:40
651
转载 引用第三方的dylib
所谓dylib,就是bsd风格的动态库。基本可以认为等价于windows的dll和linux的so。mac基于bsd,所以也使用的是dylib。如果你需要引用一个第三方的dylib,在xcode下编译出cocoa程序,在本机上运行是不会出问题的。但是发布出来,给其他用户用,就可能出问题。因为用户不一定有这个库。这个问题给我造成了相当的困扰,我到现在也没找到正规的方法。但是我确实解决
2012-10-30 15:26:44
728
原创 Cocoa -- 添加和移除开机启动项
一 写plist到~/Library/LaunchAgents/ 目录下// 配置开机默认启动-(void)installDaemon{ NSString* launchFolder = [NSString stringWithFormat:@"%@/Library/LaunchAgents",NSHomeDirectory()]; NSString * boundleID = [[
2012-06-01 11:40:24
2873
原创 GDB: Data Formatters temporarily unavailable,will re-try after a 'continue'.
自己写了一个framework,然后写了一个Demo测试了下这个framework,编译的时候不报错,一运行就报下面的错误:GDB: Data Formatters temporarily unavailable,will re-try after a 'continue'. (Cannot call into the loader at present, it is locked.)
2012-04-18 16:13:47
973
原创 objective-c Xml常用操作
1.创建XML文件//创建XML文件- (NSXMLDocument *)createXMLDocument:(NSString *)rootName{ NSLog(@"%@ with rootName %@", NSStringFromSelector(_cmd), rootName); NSXMLElement *root = (NSXMLElement *)[NSXMLNode e
2012-04-12 10:46:22
3533
原创 objective-c 通告
1. 通告和委托的区别通告也能传递与事件相关的数据。通告不同于委托的地方在于,通告是在对象执行完成动作之后产生,而不是之前。受到通告的对象没有机会建议是否要执行动作,而且对象的通告可以有多个监听者(observer),但是只有一个委托对象。2. 通告的工作机制a.对应用程序中其他地方发生的事件(比如增加一条数据库记录)感兴趣的对象,会向通告中心(Notification C
2012-03-13 14:32:11
1407
原创 类和对象--基础
一.类的一些基础 1.获取类名Class myclass = [myObject class];NSLog(@"My class is %@",[myclass className]);2.判定一个对象是否是某个类if([myObject isKindOfClass:[UIControl class]]){}3.判定对象是否是某个类的成员if([myObje
2012-02-23 00:15:17
443
原创 文件夹扫描--获取指定文件夹下所有的指定格式的文件
/// /// 获取某个文件夹下指定后缀的文件 /// /// 文件夹 /// 可以指定多种格式,如"*.txt|*.mp3" /// 查找选项 /// public IList GetFiles(DirectoryInfo directory, string filter, S
2011-11-28 17:02:04
1624
原创 在Web配置文件中设置数据库连接字串
方式一:(windows身份验证模式)server::服务器名称,可以server=(local)或者server=.\SQLEXPRESS都是连接本地的数据库Initial Catalog:数据库名称 <add name="ConnectionStrings" connectionString="server=(local);Initial Catalog=Rap;Integrate
2011-11-11 11:07:17
470
原创 C# 禁止应用程序启动两次
static class Program { /// /// The main entry point for the application. /// [STAThread] static void Main() { bool createdNew;
2011-11-02 14:57:58
1244
原创 异步委托
创建线程的一个简单方式是定义一个委托,并异步调用它。Deletage类支持异步的调用方法,在后台,Delegate类会创建一个执行任务的线程。注意:委托使用线程池来完成异步任务,具体例子可以看C#多线程与异步的区别。下面以不同的技术异步的调用委托,并返回结果。1. 投票Delegate类提供了BeginInvoke()方法,在该方法中,可以传递用委托类型定义的输入参数。B
2011-10-31 11:07:45
2234
1
原创 根据默认浏览器打开网页
前段时间做项目的时候遇到了一个问题,用System.Diagnostics.Process.Start(url)方法打开连接总是报错,System.ComponentModel.Win32Exception: 系统找不到指定的文件。调试也没弄出个所以然了,还好公司以前也有人遇到过
2011-10-10 18:41:22
1182
转载 C# 释放非托管的资源
在了解Finalize和Dispose之前,我们需要了解两个概念,一个是托管资源,一个非委托资源。a.其中托管资源一般是指被CLR控制的内存资源,这些资源的管理可以由CLR来控制,例如程序中分配的对象,作用域内的变量等。b.而非托管资源是CLR不能控制或者管理的部分,这些
2011-10-10 18:03:39
2753
原创 重命名文件
/// /// 重命名文件 /// /// 绝对路径 /// 新文件名 /// 返回消息 /// public static bool Rename
2011-09-23 17:49:20
537
原创 复制文件到指定的文件夹
using System;using System.Windows.Forms;using System.IO;namespace Common{ public class FileHelper { ///
2011-09-07 17:41:25
385
原创 生成缩略图
/// /// 按指定宽和高生成缩略图 /// /// 原图片 /// 缩略图的宽度 /// 缩略图的高度 /// public static Bi
2011-08-18 14:47:53
506
原创 设置图片透明度的四种方法
方法一:像素法即循环扫描整张图片,设置每一个像素的Alpha通道的值。 由于是一个个像素的处理,所以这种方法效率很低。/// /// 设置图片的透明度 /// /// 原图 /// 透明度(0-255之间
2011-07-24 01:13:10
13642
Learning Core Audio
2014-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人