创建: 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. 数据库SQL实战练习

    http://blog.csdn.net/iamyvette/article/details/77151925

  2. 扫描局域网内所有主机和MAC地址的Shell脚本

    #!/bin/bash #author: InBi #date: 2011-08-16 #website: http://www.itwhy.org/2011/08-20/939.html ##### ...

  3. Linux下汇编语言学习笔记61 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  4. runOnUiThread在子进程中更新主进程UI

    package com.pingyijinren.test; import android.support.v7.app.AppCompatActivity; import android.os.Bu ...

  5. Windows Socket IO 模型

    http://www.cppblog.com/huangwei1024/archive/2010/11/22/134205.html

  6. python:functools之partial

    示例:from operator import addimport functoolsprint add(1,2) #3add1 = functools.partial(add,1)print add ...

  7. java编程思想-复用类

    /* 一个文件中只能有一个public类 并且此public类必须与文件名相同 */ class WaterSource { private String s; WaterSource() { Sys ...

  8. 玩转iOS开发 - 消息推送

    消息推送

  9. [TypeScript] Represent Non-Primitive Types with TypeScript’s object Type

    ypeScript 2.2 introduced the object, a type that represents any non-primitive type. It can be used t ...

  10. Windows 老是弹出要自动拨号连接怎么办

    如下图所示,无论点击取消还是点击关闭按钮都会自动再弹出 点击工具-Internet选项 连接-局域网设置,取消勾选这些东西 点击确定和应用,可能还是会弹出几次拨号的窗口,多点击几次取消,过几下就不弹了 ...