oc类的声明和定义的常见错误
1、只有类的声明,没有类的实现
2、漏了@end
3、@interface和@implementation嵌套,也就是@interface或者@implementation和@end必须成对出现!两者中间不能嵌套任何别的。
4、成员变量没有写在括号里面
5、方法的声明写在了声明的大括号里面,或者方法的实现写在了声明里。这都是不对的。
6、忘记了:nsobject
7、想直接修改类成员变量,但是没有设置为@public
8、类的声明里的实例变量,不能在声明的时候初始化。
9、不能把成员变量当做c语言的变量,比如加static,不对!类的声明里只能写类的成员变量名
10、记住:方法是方法,函数是函数,也不能给方法加比如static。没有这个东西
11、成员变量不能在{}中进行初始化、默认不能被直接拿出去访问
12、方法不能当做函数一样调用或者声明,对象方法只能是对象来调用
13、类的实现可写在main函数的后面,只要在类的声明后面就行了
14、记住:oc里对象方法名包含冒号,oc不允许方法名一样,-或者+不是方法名
oc方法和函数的区别
1、oc方法只能声明在@interface和@end之间,只能实现在@implementation和@end之间。也就是说oc方法不能独立于类存在
2、c函数不属于类,跟类没有联系,c函数只归定义函数的文件所有
3、c函数不能访问oc对象的成员
4、低级错误:方法有声明,但是实现的时候写成了函数
5、oc的函数可以写在文件的任何位置(除@interface和@end之间除外,可以写在类的实现里),归文件所有
oc的方法使用注意
1、方法只有声明,没有实现(这是经典错误)
2、方法没有声明,只有实现(编译器警告,但是能调用,oc的弱语法)
3、编译的时候:访问没有的成员变量直接报错,访问没有的方法,只是警告,弱语法
4、没有@interface,只有@implementation,也能成功定义一个类


类里涉及到声明性别,时间等
如果用布尔类型定义性别,不太好,容易让外人搞混,不利于团队的代码共享。如果属性只有几个固定的取值,那么最好用枚举。
对于年月日的声明不要写成这样,很傻,很累,
使用结构体
程序代码如下:


xcode 的代码提示功能的关闭和开启
再次熟悉下,oc 里方法名,方法类型,返回值类型,方法参数的部分
开发 ios 到一定程度,要习惯看苹果的官方文档
oc 里的数据类型
object-c提供基本数据类型:int 、float 、double 、char
int:
八进制 ,整型第一位为 0, nslog 的格式符为: %o ,显示的八进制不带前导 0
十六进制 ,以 0x 开头的整型,nslog 的格式符为: 若(%x 或%#x) 显示的十六进制用大写
%#o 显示的八进制带前导0
%x 显示的十六进制不带前导 0x
%#x 显示的十六进制带前导0x
float:
nslog 的格式符:%f
nslog 的格式符:%e 科学计数法显示值
nslog 的格式符:%g 指数的值小于-4 大于 5,采用%e,否则采用%f
十六进制的浮点常量包含前导 0x 或 0x,后面紧跟一个或多个十进制或十六进制数字,再后是p 或 p,最后,是可以带符号的二进制指数。例:0x0.3p10 表示的值为 3/16*2^10
注:若无特殊说明,object-c 将所有的浮点常量看做 double 值,要显示 double 值可使用和 float一样的格式符。
char:
nslog 的格式符:%c
long double 常量写成尾部带有字母 l 或者 l 的浮点常量。1.234e+7l
注:id 类型可以通过类型转化符可以将一般的id 类型的对象转换成特定的对象。
_bool ;处理 boolean(即 0 或 1)
_complex;处理复数
_imaginary;处理抽象数字
键盘输入:
实例变量的初始化值默认为 0
实例变量作用域的指令:
@protected;实例变量可被该类及任何子类中定义的方法直接访问(默认的情况) 。
@private;实例变量可被定义在该类的方法直接访问,不能被子类定义的方法直接访问。
@public;实例变量可被该类中定义的方法直接访问,也可被其他类或模块中定义的方法访问。使得其他方法或函数可以通过(->)来访问实例变量(不推荐用) 。
@package;对于 64 位图像,可以在实现该类的图像的任何地方访问这个实例变量。
在类中定义静态变量和 c 一样
voaltile说明符和const 正好相反,明确告诉编译器,指定类型变量的值会改变。(i/o端口)
比如要将输出端口的地址存储在 outport 的变量中。
这样就可以避免编译器将第一个赋值语句从程序中删除 。
枚举数据类型、typedef 语法以及数据类型的转换和 c 也是一样。
辛苦的劳动,转载请注明出处,谢谢……
http://www.cnblogs.com/kubixuesheng/p/4307783.html