文章归档

使用Xcode的Refactor功能调整代码

  • 符号的重命名
    选中需要重命名的符号,右击或者直接在Edit菜单中选中Refactor>Rename。
    refactor_1

填入新的符号名称。
refactor_2

点击Preview按钮就可以看到将要发生的所有改变。
refactor_3
点Save应用修改。

  • 创建父类
    选中需要创建父类的类名,右击或者在Edit[......]

Read more

标签: , ,
文章分类 iPhone应用开发

Objective-C代码规范(简章)

Objective-C编程规范

格式化

缩进

行缩进使用4个空格,不要使用Tab字符。

在定义变量、变量赋值等一些操作时,如果同时操作的数据较多时,建议采用Tab键排版,使写出来的代码更整洁

方法声明和定

留一个空格在 – 或 + 和返回类型之间,但参数列表里的参数之间不要留间隔。[......]

Read more

标签: ,
文章分类 iPhone应用开发

Mac应用开发引入图标后编译出错

在录制第一个Mac应用程序开发视频的时候,发生了一点小意外。将应用程序图标App Icon拖到Xcode后,编译出错了。仔细一看,不是代码的问题,而是/usr/bin/iconutil转换PNG图片的时候找不到源文件。囧!这事以前还真没遇到过,当时就纳闷了,写了这么就代码都没发生过,一录视频就出问题[......]

Read more

标签: , , , ,
文章分类 iPhone应用开发

Objective-C不和C++那样有函数重载

今天有学员问在看Programming iOS 6的书上看到OC里不能像C++那样形式做函数重载的问题.

No Overloading

The data type returned by a method, together with the data types of each of its param‐ eters in order, constitute that method’s signature. It is illegal for two methods of the same type (class method or instance method) to exist in the same class with the same name but different signatures.

So, for example, you could not have two MyClass instance methods called myMethod, one of which returns void and one of which returns an NSString. Similarly, you could not have two MyClass instance methods called myMethod:, both returning void, one taking a CGFloat parameter and one taking an NSString parameter. An attempt to vi‐ olate this rule will be stopped dead in its tracks by the compiler, which will announce a “duplicate declaration” error. The reason for this rule is that if two such conflicting methods were allowed to exist, there would be no way to determine from a method call to one of them which method was being called.

You might think that the issue could be decided by looking at the types involved in the call. If one myMethod: takes a CGFloat parameter and the other myMethod: takes an NSString parameter, you might think that when myMethod: is called, Objective-C could look at the actual argument and realize that the former method is meant if the argument is a CGFloat and the latter if the argument is an NSString. But Objective-C doesn’t work that way. There are languages that permit this feature, called overloading, but Objective- C is not one of them. [......]

Read more

文章分类 iPhone应用开发

如何让iCloud或iTunes选择性备份文件

在iOS 5及以前,如果启用了iCloud或iTunes备份文件的话,Documents目录下的所有文件都会被备份,并且不能设置。

但是从iOS 5.0.1开始,Apple提供了将不需要备份的文件排除在外的方法,通过设置文件属性来确定那些文件是不需要备份的。

iOS 5.0.1时:

#import[......]

Read more

标签: , ,
文章分类 iPhone应用开发

命令行编译OC源文件

在学习Objective-C的时候,每次就为了那么几行代码就打开XCode简历工程,似乎先得太小题大作了。通常直接用VIM在命令行敲下来,编译运行一下就OK。

#import <Foundation/Foundation.h>

@interface MyPoint: NSObject[......]

Read more

标签: , , , ,
文章分类 iPhone应用开发

在iOS工程中引入C++静态库

在工程中引入使用C++编写的静态库是,经常会因为包含标准库而报错:

Snip20130128 3

一般用两种办法可以解决这个问题:

  1. 使用老版本的编译器,如llvm gcc 4.2,而不使用默认的llvm compiler,这时只要将工程中的任意一个.m文件的后缀改成.mm就可以了。xcode会自动引入c++标准库。缺点是不[......]

Read more

标签: , , ,
文章分类 iPhone应用开发

常用iOS游戏开发工具与SDK

  • 常用iOS游戏开发工具与SDK
    • 2D游戏开发框架
      • cocos2d-iPhone,iOS平台最流行的开源2D游戏引擎,包含两个较大的版本:0.9x和2.x,其中0.9x支持OpenGL ES,2.x支持OpenGL ES 2.0。Objective-C编写,支持Box2D/Chi[......]

Read more

标签: , , , ,
文章分类 iPhone应用开发

git submodule获取子模块

从github上获取工程,经常会出现依赖其它github上代码的情况,这时如果每一个都手动下载,实在太麻烦了。其实git给我们提供了相互引用的功能,可以在工程中直接引入其它的代码库,这样可以保证每次使用的子模块也都是最新的。

git clone https://github.com/Kjuly/iP[......]

Read more

标签: , ,
文章分类 iPhone应用开发

svn working copy locked

svn真心不好使,尤其在网络情况不佳的情况下,一不小心命令就出错了。重新执行的时候,却发现出问题了:
svn working copy locked
奇葩的是,提示执行svn cleanup命令,但是绝大多数情况,这都是个扯淡的东西,压根就没用。使用svn status查看的时候,发现好几个文件夹上[......]

Read more

标签: , ,
文章分类 iPhone应用开发