Mac os X 开发
走在编程路上的乞丐
这个作者很懒,什么都没留下…
展开
-
cocoa应用程序生命周期
所有的cocoa应用程序都会有一个而且仅有一个NSApplication的对象,这个对象负责程序运行过程中所有的事件获取,以及分发到对应的接受对象来处理。Mac OS X下应用程序启动时,首先会找到入口函数int main(int argc, char *argv[]),如果程序中没有这个函数,编译连接时会报错Undefined symbols:"_main", refer转载 2014-05-15 16:48:46 · 904 阅读 · 0 评论 -
开源库
AFNetworkingCopyright (c) 2013-2015 AFNetworking (http://afnetworking.com/)Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documenta转载 2015-07-03 13:44:20 · 347 阅读 · 0 评论 -
Object-C非正式协议与正式协议的区别
一、非正式协议显然这个名词是相对于正式协议而言的。在解释非正式协议之前,先引用两段话:1、在《Cocoa设计模式》第六章类别的6.3.2把类别用于非正式协议一节中,这样写到:非正式协议通常定义为NSObject的类别。类别接口中指定的方法可能会或者可能不会被框架类实际地实现。非正式协议位于一种设计灰区中。正式协议由编译器检查并且代表一种关于对象能力的保证,但是非正式协议不会转载 2015-07-13 10:34:58 · 339 阅读 · 0 评论 -
XCode: 兼容ARC和non-ARC
Objective-C引入ARC(Automatic Reference Counting)后,我们经常会面对这样一种困境:自己的项目使用了ARC,却发现要使用的第三方类库是non-ARC的;又或者自己的项目是non-ARC的,但是想使用一个ARC的第三方类库。 这个时候就有点左右为难了,不知道该让non-ARC迁就ARC,还是让ARC迁就non-ARC。网上有一些做法可以解决这个问题:1转载 2015-07-20 14:21:18 · 462 阅读 · 0 评论 -
UNRECOGNIZED SELECTOR SENT TO INSTANCE 问题快速定位的方法
开发中常见的一类崩溃错误是遇到:unrecognized selector sent to instance 0xaxxxx…而backtrace又无法明确说明错误在哪行代码,如何快速定位BUG呢?有时读代码一下很难找到是哪个instance出的问题,这时定制有效的DEBUG断点是最好的办法,方法如下:在Debug菜单中选择 Breakpoints -> Create Symb转载 2015-09-13 11:04:19 · 333 阅读 · 0 评论 -
Build Settings中的变量@rpath,@loader_path,@executable_path
@executable_path 这个变量表示可执行程序所在的目录. 比如 /path/QQ.app/Contents/MacOS/@loader_path 这个变量表示每一个被加载的 binary (包括App, dylib, framework,plugin等) 所在的目录.在一个程序中, 对于每一个模块, @loader_path 会解析成不用的路径, 而 @execut转载 2015-12-04 14:26:31 · 1284 阅读 · 0 评论 -
OS X系统 Drag & Drop
Drag & Drop(拖拽)提供了在应用与OS X系统,不同应用之间,应用内部多种场景下 资源,文件,数据可视化交换的极致的一种用户体验。我们把可以拖拽的视图(view)或窗口(window)称为 拖放源(Drag Sources),接收拖放的视图或窗口称为 拖放目标(Drag Destination)。拖放开始时会出现代表拖放源Drag Sources的图标顺着鼠标轨迹转载 2016-01-28 18:57:06 · 3032 阅读 · 0 评论 -
常用 Xcode 配色(Theme)介绍
大家在是使用Xcode开代码的时候,有没有发现Xcode自带的配色太亮或者不适合自己。下面就介绍几款不错的暗色配色(听讲暗色会保护眼睛)。以下配色只是小编收集,版权归原作者所有。一. EGOEGO Theme相关地址: http://developers.enormego.com/view/xcode_ego_theme二. DarkCity转载 2016-02-26 11:10:32 · 6307 阅读 · 0 评论 -
进程间通信 (OSX/iOS)
OS X是MacOS与NeXTSTEP的结合。OC是Smalltalk类面向对象编程与C的结合。iCloud则是苹果移动服务与云平台的结合。上述都是一些亮点,但是不得不说苹果技术中的进程通讯走的是“反人类”的道路。由于不是根据每个节点上最优原则进行设计,苹果的进程间通信解决方案更显得混乱扎堆。结果是,大量重叠,不兼容的IPC技术在各个抽象层随处可见。(除了GCD还有剪贴板)Mach转载 2016-04-28 18:02:05 · 1076 阅读 · 0 评论 -
COCOA国际化
一般提到COCOA的国际化无非就是在所有需要显示文本的地方调用NSLocalizedString(key,comment)方法,由程序自动按照当前系统语言设置载入相应Localizable.strings,并获取key所对应的文本。比如NSLocalizedString(@”username”,nil),在中文系统下显示为用户名,而在英文系统下显示为username。(值得注意的是XCode中所有转载 2016-05-03 16:38:25 · 1124 阅读 · 0 评论 -
CFBundleName系列参数的含义
CFBundleName: CFBundleName指定了该束的简称。简称应该小于16个字符并且适合在菜单和“关于”中显示。通过把它加入到适当的.lproj子文件夹下的InfoPlist.strings文件中,该关键字可以被本地化。如果您本地化了该关键字,那您也应该提供一个CFBundleDisplayName关键字的本地化版本。 CFBundleDisplayName:CFBun转载 2016-05-03 17:51:23 · 2123 阅读 · 0 评论 -
OS X 10.11中Rootless的实现与解释以及关闭方法
为了解释OS X 10.11中引入的Rootless机制,我翻译了Quora用户Eldad Eilam的答案,原文链接见这里。定义问题Rootless讨论的前提是假定root账户是OS X(或者其他Unix系统)中对抗恶意程序保护操作系统的最后一道防线。意思是一个应用程序一旦获得了root账户权限,将会获得系统的无限的权限。就可以进行实时修改、修改磁盘、替换任何系统文件等。转载 2016-07-01 14:32:56 · 843 阅读 · 0 评论 -
http常用端口
代理服务器常用以下端口:(1). HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080(2). SOCKS代理协议服务器常用端口号:1080(3). FTP(文件传输)协议代理服务器常用端口号:21(4). Telnet(远程登录)协议代理服务器常用端口:23 HTTP服务器,默认的端口号为80/tcp(木马Executor开放此端口);HTTPS(secu转载 2016-08-31 11:07:22 · 1260 阅读 · 0 评论 -
libpcap详解
libpcap(Packet Capture Library),即数据包捕获函数库,是Unix/Linux平台下的网络数据包捕获函数库。它是一个独立于系统的用户层包捕获的API接口,为底层网络监测提供了一个可移植的框架。一、libpcap工作原理libpcap主要由两部份组成:网络分接头(Network Tap)和数据过滤器(Packet Filter)。网络分接头从网络设备驱动程转载 2016-08-31 11:37:06 · 438 阅读 · 0 评论 -
ios CrashReport解决方案
1、在崩溃的时候使用 (这里)提到的方式来获取堆栈直接上传到服务器。 这个可以进行粗略定位,并且是明文的,不需要额外工具转换格式。 缺点是,不能定位到具体行。但是很多情况下这个也是足够使用的。 2、使用plcrashreporter 获取到崩溃日志文件。 在游戏下一次开始运行的时候上传这个崩溃文件到服务器。 我们获取到这个文件后具体分析过程: a、将发布版本时备份的d转载 2015-05-13 11:53:52 · 1366 阅读 · 0 评论 -
GCD 深入理解(二)
转自@nixzhu的GitHub主页(译者:Riven、@nixzhu),原文《Grand Central Dispatch In-Depth: Part 2/2》 欢迎来到GCD深入理解系列教程的第二部分(也是最后一部分)。 在本系列的第一部分中,你已经学到超过你想像的关于并发、线程以及GCD 如何工作的知识。通过在初始化时利用 dispatch_once转载 2015-01-05 18:24:57 · 534 阅读 · 0 评论 -
GCD 深入理解(一)
本文由@nixzhu翻译至raywenderlich的《grand-central-dispatch-in-depth-part-1》虽然 GCD 已经出现过一段时间了,但不是每个人都明了其主要内容。这是可以理解的;并发一直很棘手,而 GCD 是基于 C 的 API ,它们就像一组尖锐的棱角戳进 Objective-C 的平滑世界。我们将分两个部分的教程来深入学习 GCD 。 在这两部转载 2015-01-05 11:13:51 · 686 阅读 · 0 评论 -
xcode开发环境中字母图标和debug navigator中的小图标的含义
当我们在xcode中对某个文件中代码段做过修改后,在该文件后边就会出现提示,如A、M什么的,如图这些都是什么意思呢?现总结如下 (同时欢迎大家提出补充意见),希望能对大家有一些帮助1、 “M” 标记 --- modified,表示该文件已被修改,需要 commit. (右键该文件 -> source control -> commit selected file.原创 2014-05-15 17:22:22 · 2248 阅读 · 0 评论 -
initWithNibName 和 loadNibNamed 的区别和联系
关于 initWithNibName 和 loadNibNamed 的区别和联系。之所以要把这两者来一起讲,我觉的我也有点困惑,到底用那种?其实真正搞清楚了他们之间的差别,就不会这么迷惘了。因为这两个方法,根本就不是一路货色。既然,是要说明这2个方法,那就着重将区别吧。但是第一步,还是要罗嗦一下,他们的联系:可以使用此方法加载用户界面(xib文件)到我们的代码中,这样,可以通过操作转载 2014-05-16 10:46:04 · 767 阅读 · 0 评论 -
Cocoa WebView 无法打开链接的问题等
1.如何捕获WebView中javascript的window.open事件,并通过系统默认的浏览器打开我需要在webview的页面中通过window.open的方式打开一个链接,但是发现在webview中根本不起作用,通过google发现,想要在js中实现诸如alert窗口,window.open的动作,都得自己写方法来实现,比如alert窗口的话,你需要设置webview的WebUID转载 2014-06-10 11:37:15 · 2432 阅读 · 0 评论 -
xcode5下资源本地化详解
国际化主要分三个模块:1.icon模块。主要是桌面图标下的文字变化。2.程序内文字的变化。3.程序内图片的变化。1.icon模块先说说icon模块在xcode5.0.2上处理。 正如网上说的样,要建立中文版本和英文版本的InfoPlist.strings文件。 这个就直接上图。选择工程菜单,点击红色框后如转载 2014-06-11 18:22:47 · 620 阅读 · 0 评论 -
Objective-c的@property 详解
之前很多网友对我翻译的教程中的Property的使用感到有些迷惑不解,搞不清楚什么时候要release,什么时候要self.xxx = nil;同时对于Objective-c的内存管理以及cocos2d的内存管理规则不够清楚。本文主要讲解objc里面@property,它是什么,它有什么用,atomic,nonatomic,readonly,readwrite,assign,retain,copy转载 2014-06-16 11:55:55 · 440 阅读 · 0 评论 -
Cocoa的几种内置数据类型之间的互转
因为Cocoa的数据类型之间的互转在实际程序中应用很广泛,而我经常都会忘记,因此在此记录一下常用的几个互转。以后将会补充更多。1 NSData和NSString之间互转:123456789/* NSString to NSData */NSString *theString = @"This is a string";NSDat转载 2014-11-20 17:30:53 · 572 阅读 · 0 评论 -
iOS系类教程之用instruments来检验你的app
比较了好多关于instruments 还是发现老外写的比较牛逼.于是果断翻译过来.有能力的的可以去看英文原版,鼓励大家看原版资料远离二手教程 http://www.raywenderlich.com/23037/how-to-use-instruments-in-xcode入门为了节省大家的时间,提供一个演示的Demo给大家.代码传送门. 下载后解压然后用xcode打开. 编译转载 2015-01-08 17:41:47 · 520 阅读 · 0 评论 -
EXC_BAD_ACCESS 查错步骤
EXC_BAD_ACCESS, objc_msgSend, 此类报错往往来的莫明奇妙.原因往往是内存过度释放导致, 即多写了release;至于是哪里多写了release, 很难查知, 以下及为查询方法.工具/原料Xcode5.1.1Xcode 自带开发工具 Instrument6.0转载 2015-01-08 17:58:31 · 695 阅读 · 0 评论 -
Instrument 之 time Profiler
一直断断续续的学习instrument,没有整理相关的经验与资料,久而久之就慢慢忘记了,所以今天就静下心来整理一下time profiler相关的资料。如何启动已知晓者可略过直接进入time profiler的启动分为真机抓包、代码profile这两种方式,如果需要更接近真实数据建议使用低配置一点的机器使用真机抓包,这样误差会更少些。1、真机抓取真机转载 2015-01-14 17:13:14 · 1316 阅读 · 0 评论 -
Cocoa文件相关操作
打开查看文件NSOpenPanel *openPanel=[NSOpenPanel openPanel];[openPanel setTitle:@"Choose a File or Folder"];//setTitle为NSWindow的方法,它是openPanel 的父类[openPanel setCanChooseDirectories:YES];//默认不可以选文转载 2014-12-11 10:39:14 · 536 阅读 · 0 评论 -
Mac环境下svn的使用
在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简单的配置。我们首先来看下,如何在Mac环境下搭建svn服务器端环境。创建代码仓库,用来存储客户端所上传的代码我先在/User/apple目录下新建一个svn目录,以后可以转载 2015-01-19 13:50:13 · 391 阅读 · 0 评论 -
Mac点击关闭按钮退出程序 与 程序隐藏后点击dock图标重新显示
首先AppDelegate实现window的代理;[plain] view plaincopyprint?@interface AppDelegate : NSObject 接着将window的delegate链接到AppDelegate;最后实现下面两端代码,如果实现了第一段代码,第二段代码就会失效:转载 2015-01-22 14:52:40 · 1814 阅读 · 0 评论 -
mac下图形界面开发:ios and mac osx
Mac平台下使用XCode开发的基本概念http://chuangyiji.com/2008/03/mac-ping-tai-xia-shi-yong-xcode-kai-fa-di-ji-ben-gai-nian/你必须拥有的关于 Mac 开发的书Become an Xcoder最 初级的入门指南,即使你不会 C/C++、Java、Python、Rub转载 2015-01-04 11:26:24 · 3273 阅读 · 0 评论 -
mac os x网络端口
查看端口是否打开使用 netstat 命令a. `netstat -nat | grep ` , 如命令 `netstat -nat | grep 3306`b. `netstat -nat |grep LISTEN`使用 lsof 命令# yongfu-pro at yongfu-pro.local in ~ [22:39:32]$ lsof -n -P -i TCP -原创 2017-01-03 10:12:43 · 1645 阅读 · 0 评论