创建: 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. 集训第四周(高效算法设计)O题 (构造题)

    A permutation on the integers from 1 to n is, simply put, a particular rearrangement of these intege ...

  2. 优先队列重载运算符< 以及初始化列表

    优先队列定义 priority_queue<int, vector<int>, greater<int> >pq; 优先队列重载<运算符 在结构体中定义一个 ...

  3. reactNative 打包那些事儿

    我们项目测试时一般是debug版本,打包上线,一般是release版本,所以在测试和打包时会走不同的方法,如上图所示. 在debug版本中,会走我们本地服务器,也就是自己电脑上的服务.在release ...

  4. stl lower_bound()返回值

    http://blog.csdn.net/niushuai666/article/details/6734403 函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回 ...

  5. codevs3285 转圈游戏

    题目描述 Description n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 ...

  6. poj_2524_Ubiquitous Religions_201407211506

    Ubiquitous Religions Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 23390   Accepted:  ...

  7. [bzoj4827][Hnoi2017]礼物_FFT

    礼物 bzoj-4827 Hnoi-2017 题目大意:给定两个长度为$n$的手环,第一个手环上的$n$个权值为$x_i$,第二个为$y_i$.现在我可以同时将所有的$x_i$同时加上自然数$c$.我 ...

  8. springmvc json 数据

    这里是controllor层 @RequestMapping("/traceupdatestatus") @ResponseBody public boolean traceupd ...

  9. Servlet基础教程:tutorialspoint-servlet

    来自turorialspoint的Servlet基础教程(英文),官网:https://www.tutorialspoint.com/servlets/index.htm 这个教程在国内已经被翻译成中 ...

  10. cache and database

    This article referenced from http://coolshell.cn/articles/17416.html We all know that high concurren ...