创建: 2018/01/17

完成: 2018/01/19

 对象(object)与信息
 信息式
声明实例变量 
id obj;
 向对象变量发送信息

[obj msg] //这就是信息式
例: [[obj msg1] msg2];

把信息式返回的结果

作为数组等的索引来用

element = table[[obj count]];

 信息(message)
和变量一样的命名规则, 由信息关键字组成
[aString copy];
width = [node width]; //变量名和信息名可以重复,自动区分
[[doc filename] retain];

可以带参数

信息后面带:

[printInfo setLeftMargin: 60.0];
[[[cw window] firstResponder] copy: sender];
[doc isSameDirecory:[info objectAtIndex: ++num]];

带有多个信息,空格分开,可以省略信息关键词p19

// TODO: 省略信息关键词后默认关键词是啥

cell = [albumview cellAtRow:i column:j];
[manager fileExistsAtPath:dirname isDirectory:&isdir];
[view lineTo: 1.4142 :(y + 1.0)];

信息选择器

(message selector)

没有值
copy
message
有值

copy:
message:
多个值

left:right:
lineTo:://第二个量开始可以省略关键词
   
注意: 信息选择器有顺序,顺序不同的不看做同一个  
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

实例的生成与初始化

ObjC里通过向类发送信息的方式来生成

//生成 alloc
[类名 alloc] //只确保了内存空间,需要初始化 //初始化 init 以init开头的
[[类名 alloc] init]
   
   
   
   
   
   
   
   
 类的定义
 类的interface部分
 位置  一般记在头文件里
 例 

・类名不能和变量或方法的声明重名

 ・变量和方法可以重名

@interface 类名 : 母类名
{
实例变量的声明;
...
}
方法的声明;
...
@end //注意: @end后面不需要;

@开头的是编译修饰符,区别于C语言的#开头

 方法的声明

・可以省略类型声明,默认为id。C语言下默认为int。但是不要省略

(id)delegate; //不带参数
(id)cellAtRow:(int)row column:(int)col; //带两个参数
(void)setAutodisplay:(BOOL)flag;// BOOL YES(非零) NO(零)
   
   
   
   
   
   
   
 类的实现部分
 例

・不用写母类

・interface里声明的方法必须有对应实现

@implementation 类名
方法的定义
...
@end
 方法的实现例

・方法的参数名里的变量和方法内的局部变量不要和类的实例变量重名 

・方法内部可以自由获取该类的实例变量

・self 表示拥有当前方法的实例对象,可以用self来实现递归

(double)evalution:(int)val {
double temp = [order proposedBalance: value];
if (currentValue > (int)temp) {
temp = [order proposedBalance: val*1.25]
}
return temp;
}
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 编译
   类似C语言
   
   
   
   
   
   
   
   
   
 程序的写法 
 ObjC混合语言
 ObjC是混合语言 支持多种编程风格:面向对象,面向过程
 何时用C

●使用现成的函数模块(module)

●Unix的系统接口

●不与具体类相关的计算模块

●在类定义里作为其他方法的一部分子函数

   
 c语言的使用方法

随便哪里都能放

不在类定义里的不能用self(?) # TODO: check [到底啥意思]

 静态变量

对象部分(面向对象部分)不要用static固定变量

原因: 静态变量被多个对象参照,值被各种不经意修改

 接入头文件
 ObjC
#import <stdio.h>
 C
#include <stdio.h>
 区别

两者一样,但是#import只会被包含一次

#import "a.h" // 只会被包含一层

// 相当于
#ifndef _A_H_
#define _A_H_
// 头文件代码写在这里
#endif
   
   
   
   
   
   
   
   

Objective-C程序的更多相关文章

  1. Ubuntu编绎 Objective C程序

    1.安装如下组件 sudo apt-get install如下组件:build-essential gobjc gobjc++ gnustep-devel 2.在工作目录建立下如Shell脚本,并更改 ...

  2. Objective C Runtime 开发介绍

    简介 Objective c 语言尽可能的把决定从编译推迟到链接到运行时.只要可能,它就会动态的处理事情.这就意味着它不仅仅需要一个编译器,也需要一个运行时系统来执行变异好的代码.运行时系统就好像是O ...

  3. GCC中文手册

    GCC 1 NAME gcc,g++-GNU工程的C和C++编译器(egcs-1.1.2) 总览(SYNOPSIS) gcc[option|filename ]... g++[option|filen ...

  4. gcc g++ 参数介绍

    C和C++ 编译器是集成的.他们都要用四个步骤中的一个或多个处理输入文件: 预处理 (preprocessing),编译(compilation),汇编(assembly)和连接(linking).源 ...

  5. Objective-C内存管理与原理

    尽管苹果在 iOS 5/ Mac OS X 10.7 开始导入ARC,利用 Xcode4.2 可以使用该机能.ARC就是自动引用计数,是一项为Objective - C程序在编译时提供自动内存管理的功 ...

  6. 【转】Swift 语言的设计错误

    Swift 语言的设计错误 在『编程的智慧』一文中,我分析和肯定了 Swift 语言的 optional type 设计,但这并不等于 Swift 语言的整体设计是完美没有问题的.其实 Swift 1 ...

  7. <摘录>GCC 中文手

    GCC 中文手册 作者:徐明 GCC Section: GNU Tools (1) Updated: 2003/12/05 Index Return to Main Contents -------- ...

  8. 【转载】 GNU GCC 选项说明

    GCC 1 Section: GNU Tools (1) Updated: 2003/12/05 Sponsor: GCC Casino Winning Content NAME gcc,g++-GN ...

  9. 【转载】GCC 预处理器选项

    预处理器选项(Preprocessor Option) 下列选项针对C预处理器,预处理器用在正式编译以前,对C 源文件进行某种处理. 如果指定了`-E'选项, GCC只进行预处理工作.下面的某些选项必 ...

  10. IOS ARC内存管理,提高效率避免内存泄露

    本文转载至 http://blog.csdn.net/allison162004/article/details/38756263 Cocoa内存管理机制 (1)当你使用new.alloc.copy方 ...

随机推荐

  1. LeetCode 123. Best Time to Buy and Sell Stock III (stock problem)

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  2. 《 阿Q正传》-鲁迅 词语解释 | 经典语录

    词语解释 “太上有立德,其次是立功,其次是立言,虽久不废,此之谓不朽”.-出自<左传>-左丘明(春秋末期) 解释:(1)最上等的是树立德行,其次是建功立业,再其次是创立学说,即使过了很久也 ...

  3. 快捷搜索框(UISearchBar)简单实现 swift

    1.在故事板里面拖入一个搜索栏和一个的tableView.2.创建的ViewController,实现代理:UISearchBarDelegate,UITableViewDataSource,的UIT ...

  4. STM32F407 GPIO 库函数编程套路(led与beep总结) 个人笔记

    本文由正点原子STM32F407探索者开发板的led和beep实验,总结了gpio编程的套路. 下文中以hardware 来称呼可能的硬件外设,如led或beep等. 新建项目后主要用到三个文件:ha ...

  5. C51 静态数码管 个人笔记

    显示器介绍 单片机系统中常用的显示器有: LED(Light Emitting Diode):发光二极管显示器 LCD(Liquid Crystal Display)液晶显示器 TFT 液晶显示器等. ...

  6. Session与Token的区别

    1. 为什么要有session的出现?答:是由于网络中http协议造成的,因为http本身是无状态协议,这样,无法确定你的本次请求和上次请求是不是你发送的.如果要进行类似论坛登陆相关的操作,就实现不了 ...

  7. 九度oj 题目1074:对称平方数

    题目1074:对称平方数 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6422 解决:2912 题目描述: 打印所有不超过n(n<256)的,其平方具有对称性质的数. 如11*11 ...

  8. Java 学习(5):修饰符 运算符

    目录 --- 修饰符 --- 运算符 --- 循环结构 --- 分支结构 修饰符: 修饰符用来定义类.方法或者变量,通常放在语句的最前端.如下: public class className { // ...

  9. codevs——6221 数的统计

    6221 数的统计  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 有一个人名字叫A,B总喜欢打他. 这 ...

  10. NOIP 2009 潜伏者

    P1071 潜伏者 题目描述 RR 国和 SS 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 SS 国的 RR 国间谍小 CC 终于摸清了 SS 国军用密码的编码规则: ...