object-c 复合
Object-C 经典入门教程
Object-C 入门教程分类:Sip&asterisk2009-05-04 16:34 16409人阅读评论(2) 收藏举报大纲o开始吧下载这篇教学o设定环境o前言o编译 hello worldo创建 Classes@interfaceo@implementationo把它们凑在一起o详细说明...多重参数o建构子(Constructors)o访问权限o Class level accesso异常情况(Exceptions)处理o继承、多型(Inheritance, Polymorphism)以及其他面向对象功能id 型别o继承(Inheritance)o动态识别(Dynamic types)o Categorieso Posingo Protocolso内存管理Retain and Release(保留与释放)o Dealloco Autorelease Poolo Foundation Framework ClassesNSArrayo NSDictionary∙优点与缺点∙更多信息开始吧下载这篇教学▪所有这篇初学者指南的原始码都可以由objc.tar.gz下载。
这篇教学中的许多范例都是由 Steve Kochan 在Programming in Objective-C. 一书中撰写。
如果你想得到更多详细信息及范例,请直接参考该书。
这个网站上登载的所有范例皆经过他的允许,所以请勿复制转载。
设定环境▪Linux/FreeBSD: 安装GNUStep为了编译 GNUstep应用程序,必须先执行位于/usr/GNUstep/System/Makefiles/GNUstep.sh 的GNUstep.sh 这个档案。
这个路径取决于你的系统环境,有些是在 /usr, some /usr/lib,有些是/usr/local。
如果你的 shell 是以 csh/tcsh 为基础的 shell,则应该改用 GNUStep.csh。
Object-C——基础语法
Object-C——基础语法Object-C是在C语⾔的基础上加上了⾯向对象的部分,更好的来开发程序。
⼀、关键字1、基本上关键字都以@开头2、常见关键字如下:@interface、@implementation、@end@public、@protected、@private、@selector@try、@catch、@throw、@finally@protocol、@optional、@required、@class@property、@synthesize、@dynamicself、super、id、_cmd、__block、__strong、__weak、3、字符串也以@开头如:@“hello”⼆、import#import的⽤途:1、跟#include⼀样,拷贝⽂件的内容2、可以⾃动防⽌⽂件的内容被重复拷贝三、 Foundation1、开发iOS程序必备的框架,2、包含很多的API3、此框架包含了很多头⽂件头⽂件的引⽤#import <Foundation/Foundation.h>四、NSLog1、NSLog⽤来接受OC字符串座位参数2、NSLog输出后会⾃动换⾏3、使⽤NSLog 需要#import<Foundation/Foundation.h>五、BoolBool类型的变量有2种取值:YES、NO举例1#import <Foundation/Foundation.h>234 BOOL test(BOOL mybool)5 {6return NO;7 }89int main()10 {11 BOOL b = YES;1213 BOOL b2 = NO;1415 BOOL b3 = 1; // YES1617 BOOL b4 = 0; // NO181920 NSLog(@"%d", test(YES));21return0;22 }六、编译链接⽅法1、编写OC源⽂件:.m、.c2、在终端种使⽤以下过程:①编译:cc -c xxx.m xxx.c②链接:cc xxx.o xxx.o -framework Foundation(只有⽤到了Foundation框架才需要加上-framework Foundation)③运⾏:./a.out。
object-c实现异步的方法
object-c实现异步的方法
在Objective-C中,可以使用GCD(Grand Central Dispatch)来实现异步方法。
GCD是一个底层的多线程处理框架,可以用于在后台执行任务,而不会阻塞主线程。
下面是一个使用GCD实现异步方法的示例代码:
```objective-c
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
// 在后台执行异步任务
// 这里可以放置需要异步执行的代码
// 例如网络请求、耗时计算等
dispatch_async(dispatch_get_main_queue(), ^{
// 在主线程更新UI或执行其他需要在主线程执行的操作
// 这里可以放置需要在主线程执行的代码
// 例如更新UI、处理数据等
});
});
```
在上述代码中,首先创建了一个全局并发队列(`dispatch_get_global_queue`)用于执行后台任务。
然后使用`dispatch_async`方法将需要异步执行的代码块放入队列中。
在后台执行的代码块中,可以进行一些耗时的操作,例如网络请求或者计算。
如果需要在后台执行的代码执行完毕后更新UI或执行其他需要在主线程执行的操作,可以使用`dispatch_async`方法将相关代码块放入主队列(`dispatch_get_main_queue`)中,以确保在主线程中执行。
需要注意的是,在异步方法中更新UI时,要确保在主线程上执行,否则可能会引发线程安全问题。
在XCode中将C或者C++代码混合进Object-C代码
在XCode中将C或者C++代码混合进Object-C代码
这个题⽬写的很不好,⾃⼰也觉得很⽆奈。
Object-C其实是种在C或者C++代码中嵌⼊运⾏级对象调⽤的语⾔!
什么是运⾏级对象调⽤,就是对象调⽤不是在语法级的,⽽是在编译后的运⾏级的,类似的技术还有微软的COM和开放对象组织的Corba,只不过后两个并不把运⾏级对象调⽤的内容加到实现语⾔⾥,⽽是使⽤单独的IDL语法和⽂件!
理解了上⾯这个东西,就能明⽩,就是让编译器是把源⽂件当成C还是当成C++来编译!
⽅法⼀:直接改扩展名
.m⽂件就是把源⽂件当成写有Object-C的C⽂件来编译
.mm⽂件就是把源⽂件当成写有Object-C的C++⽂件来编译
⽅法⼆:通过Xcode改⽂件属性
选择⽂件,打开Menu的Filey->Get Info
更改File Type的下拉选择,我相信程序员⼀眼就能看出⾥⾯是什么意思:)。
object-c初学者中文教程
创建对象
创建对象有两种主要的办法。第一个是之前你看到的: NSString* myString = [NSString string]; 这是一种更加方便自然的方式。通过这种方法,你创建了一个自 动 释 放 (autoreleased)的对象,这一点我们会在后面看到更多的细节。尽管如此,在许多 地方,你可能需要通过手工创建的方式来创建一个对象,如下: NSString* myString = [[NSString alloc] init]; 这是一个嵌套的方法调用。第一个是NSString类本身的alloc方法调用。这是一 个相对低层的调用,它的作用是分配内存及实例化一个对象。 第二个是调用新创建对象的init方法。init方法通常做对象的初始化设置工作, 比如创建实例变量。作为一个类的使用者,你无法知道这些方法的实现细节。 在某些情况下,你可以使用init方法的另外一种版本,这些版本带有输入参数: NSNumber* value = [[NSNumber alloc] initWithFloat:1.0];
在任何情况下,在方括号中代码都意味着你是在给一个对象或者一个类型发送一个 消息(即一个方法调用)。
点操作符
在Mac OS X 10.5中,Objective-C 2.0新增了点操作符的设置器(setter) 和获取器(getter):
ios中object-c的传值方法
iOS中Object-C的传值方法随着移动应用程序的发展,iOS评台成为了开发者们的首选之一。
在iOS开发中,Object-C是一种常用的编程语言。
在应用程序中,数据的传递是非常常见的操作,而如何在iOS中使用Object-C进行数据的传值成为了开发过程中的关键问题。
本文将介绍几种在iOS中使用Object-C进行数据传值的方法,帮助开发者更好地了解和掌握这一重要的技能。
一、使用属性(Property)在Object-C中,可以使用属性(Property)来进行数据的传递。
通过为类定义属性,并且为属性生成setter和getter方法,可以实现对属性值的设置和获取。
下面是一个简单的示例:1. 在.h文件中定义属性```interface MyViewController : UIViewControllerproperty (nonatomic, strong) NSString *data;end```2. 在.m文件中使用属性```implementation MyViewControllersynthesize data;- (void)viewDidLoad{[super viewDidLoad];self.data = "Hello, world!";}end```通过定义属性并生成对应的setter和getter方法,可以在不同的类之间传递数据,实现数据的共享和传递。
二、使用代理(Delegate)另一种常见的传值方法是使用代理(Delegate)。
通过定义一个协议(Protocol)和相应的代理方法,可以实现在不同的类之间传递数据。
下面是一个示例:1. 定义协议```protocol DataDelegate <NSObject>- (void)passData:(NSString *)data;end```2. 设置代理```interface MyViewController : UIViewController <DataDelegate> endimplementation MyViewController- (void)passData:(NSString *)data{NSLog("Received data: ", data);}end```3. 实现代理方法```interface AnotherViewController : UIViewControllerproperty (nonatomic, weak) id<DataDelegate> delegate;endimplementation AnotherViewController- (void)sendData{if ([self.delegate respondsToSelector:selector(passData:)]) { [self.delegate passData:"Hello, world!"];}}end```通过定义代理和实现代理方法,可以实现不同类之间数据的传递和通信。
初中英语复合句专题(共29张PPT)
I don’t know if/whether___i_t _is__g_o_in_g__to__r_a_in_._
是否将要下雨
Note: 只用whether的四种情况:
1. 在介词后
I’ m thinking of whether we should go fishing.
2. 直接与or not连用时
(他想要和你通话)
I’m sorry (that)____h_e_i_sn_’_t_h_e_r_e_r_ig_h_t_n_ow.
他现在不在这里
that本身无意义,不充当任何成分,常被省略
Note:
1.宾语从句的否定转移:
主句是I/We think/suppose/guess/believe等时,从句中的否定 习惯上要转移到主句中。
Note: allow us to do.
I’ll never forget the day when I joined the League. I don’t know if/whether__________________
for是并列连词,引导的句子不置于句首,是一种非直接的、 This is Tom.
Ⅰ. The Object Clause (宾语从句)
宾语从句是英语复合句中用来充当宾 语的句子。
宾语从句一般由“引导词+主语+谓语+其 它”构成,其语序是陈述句语序.
1. that+陈述句的宾语从句 例如: He says that___h_e_w__a_n_ts__to__s_p_e_a_k_t_o_y_o_u. .
e.g. If he doesn’t come on time, we won’t know what to know.
高一五大基本句型
3.S+V+O
(Subject主语+verb动词+object宾语) Subject主语+verb动词+object宾语)
第三种句型S+V+O(Subject主语 ( 主语+verb动词 动词+object宾语)又怎 宾语) 第三种句型 主语 动词 宾语 样轻易牢记呢?何谓宾语呢? 样轻易牢记呢?何谓宾语呢? 宾语( 宾语(object)在句子中充当动作的承受者,因此一般都放在及物 )在句子中充当动作的承受者, 动词( 动词(Transitive verb,缩写为 )之后。 ,缩写为vt.)之后。 请你现在又回到教堂行婚礼好吗? 请你现在又回到教堂行婚礼好吗? 你情不自禁的欲向你的新郎/新娘子表示爱意,于是说: 你情不自禁的欲向你的新郎/新娘子表示爱意,于是说: “I love you.” 从此, 也铭记于心。 从此,文法上的第三种基本句型S+V+O(主+谓+宾)也铭记于心。 句中的I自然是主语 自然是主语subject啦,love是动词,而you就是宾语 是动词, 句中的 自然是主语 啦 是动词 就是宾语 object了。 了 现在你只要轻轻朗读 I do. You look handsome. I love you. 就可牢记三大基本句型了。 就可牢记三大基本句型了。
直接宾语与间接宾语对调时, 直接宾语与间接宾语对调时,间接宾语前加介词 to的动词有: 的动词有: 的动词有 give(给), tell(告诉 , lend(借 告诉) 给 告诉 借 给) , sell(卖), teach(教) , send(寄给 write(写 卖 教 寄给), 写 寄给 出示) 还给), 给), show(出示 , return(还给 bring(带 出示 还给 带 递给), 留给), 给), pass(递给 leave(留给 offer(提 递给 留给 提 交给) 供), hand(交给 交给 e.g. hand sth. to sb. 间接宾语前加介词for的动词有 的动词有: 间接宾语前加介词 的动词有: buy(买), choose(选择 get (弄 选择), 买 选择 弄 订购), 到), make(做), order(订购 sing (唱 做 订购 唱 演奏) 歌), do (做), play(演奏 做 演奏 e.g. sing a song for you
object-c字符串操作
object-c字符串操作Objective-C 中核⼼处理字符串的类是 NSString 与 NSMutableString ,这两个类最⼤的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除⾮重新给这个字符串赋值。
⽽NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。
1.创建经典的NSString字符串NSString 与 char* 最⼤的区别就是 NSString是⼀个objective对象,⽽char* 是⼀个字节数组。
@+ ” 字符串 ” 这个符号为objective-c NSString 字符串常量的标准⽤法,char* 创建的时候⽆需添加@- (void)viewDidLoad{[super viewDidLoad];//经典的字符串赋值NSString *str0 = @"我是⾬松MOMO";//字符串格式化合并分别包括//NSString*类型 int类型 char*类型NSString *str1 = [NSString stringWithFormat:@"我的名字:%@ 我的年龄:%d 我的邮箱:%s",@"⾬松MOMO", 25,"xuanyusong@"];//字符串赋值参数中只可以写⼀个字符串和第⼀种很像NSString *str2 = [NSString stringWithString:@"我是字符串"];//字符串转换为utf-8格式参数为char*类型NSString *str3 = [NSString stringWithUTF8String:"字符串转换utf-8格式"];//字符串合并int i = 100;char*c = "xuanyusong";NSString *temp = @"我是临时字符串";//在字符串temp的基础继续添加 int i 与 char* c 组成⼀个新的字符串NSString *str4 = [temp stringByAppendingFormat:@"整型: %d 字符型:%s",i,c];//在字符串temp的基础继续添加temp 并组成⼀个新的字符串NSString *str5 = [temp stringByAppendingString:temp];//字符串输出NSLog(@"str0 = %@", str0);NSLog(@"str1 = %@", str1);NSLog(@"str2 = %@", str2);NSLog(@"str3 = %@", str3);NSLog(@"str4 = %@", str4);NSLog(@"str5 = %@", str5);}2.字符串的遍历每⼀个字符串其实是由若⼲个char字符组成,字符串的遍历实际上就是将字符串中的每⼀个字符提取出来。
Object-c构造方法(初始化方法)
Object-c构造⽅法(初始化⽅法)构造⽅法(初始化⽅法)1. 在OC中init开头的⽅法, 我们称之为构造⽅法2. 构造⽅法的⽤途: ⽤于初始化⼀个对象, 让某个对象⼀创建出来就拥有某些属性和值(所以构造⽅法是对象⽅法,以 “-”开头)3. 重写init⽅法, 在init⽅法中初始化成员变量注意: 重写init⽅法必须按照苹果规定的格式重写, 如果不按照规定会引发⼀些未知的错误1.)必须先初始化⽗类, 再初始化⼦类2.)必须判断⽗类是否初始化成功, 只有⽗类初始化成功才能继续初始化⼦类3.)返回当前对象的地址4.格式:- (instancetype)init; // ⽅法声明//⽅法实现- (instancetype)init{if(self = [super init])//初始化⽗类并判断是否初始化成功{_age = 25;}return self;}5. 注意:instancetype与id相似,不过instancetype只能作为⽅法返回值,它会进⾏类型检查,如果创建出来的对象,赋值了不相⼲的对象就会有⼀个警告信息,在编译时候就会报错,防⽌出错。
⾃定义构造⽅法:⾃定义⼀个init⽅法⾃定义构造⽅法的规范:1. 构造⽅法是对象⽅法,必须以 - 开头2. 返回值是id/instancetype类型,⼀般⽤ instancetype3. ⽅法名必须以 initWith开头,With的 W 要⼤写格式//⽅法声明- (instancetype)initWithAge:(int);//⽅法实现- (instancetype)initWithAge:(int){if(self = [super init]){_age = age;}return self}继承中的⾃定义构造⽅法1. ⼦类中不能访问⽗类的私有成员变量// Person中的属性:age,⼦类Student中的属性 name//在⼦类Student中⾃定义构造⽅法来初始化属性- (instancetype)initWithAge:(int) andName:(NSString *)andName;//⽅法实现- (instancetype)initWithAge:(int) andName:(NSString *)andName{//self = [super init]//if(self != nil)if(self = [super init]){//age是⽗类Person中通过@property⾃动在.m⽂件中⽣成的⽆法继承,不能直接访问//_age = age;_age = self.age;//通过⽗类来访问,但⼀般不建议这么写:⾃⼰的事情⾃⼰⼲,所以age是在⽗类的构造⽅法中去初始化_name = name;}return self;} 2. ⽗类的属性由⽗类的⽅法来处理// Person中的属性:age,⼦类Student中的属性 name//在⼦类Student中⾃定义构造⽅法来初始化属性- (instancetype)initWithAge:(int) andName:(NSString *)andName;//⽅法实现- (instancetype)initWithAge:(int) andName:(NSString *)andName{//这⾥self = ⽗类的initWithAge:(int)age⽅法,这样age属性就由⽗类⽅法来处理,只需要处理⼦类本类中的name即可if(self = [super initWithAge:(int)age]){_name = name;}return self;}//注意init⽅法写法:以下两种写法等价,⼀般使⽤最后⼀种⽅法- (instancetype)init{self = [super init]; //init superif(self != nil) //判断是否初始化成功:super 是否为空{_age = 6;}return self;}- (instancetype)init{if(self = [super init]){_age = 6;}return self;}。
Object-C函数定义--笔记
⽐较项⽬C Object - C⽆参数int foo();int ret = obj -> foo();- (int) foo;int ret = [obj foo];⼀个参数int foo(int a);int ret = obj->foo(100);-(int) foo:(int)a;int ret = [obj foo:100];两个参数int foo(int a, int b);int ret = foo(10,20);-(int) foo:(int)a :(int)b; int ret = [obj foo:10 :20]带标签int fooAndB(int a,intb);ret = fooAndB(10,20);-(int) foo:(int)a andB:(int)b;int ret = [obj foo:10 andB:20];Object-C函数定义--笔记-(int) f:(int)x;1.这⾥ - 表⽰对象⽅法, +表⽰类的⽅法2.参数分割使⽤ : 号来分开多参数情况:1.函数不带参数 (函数名: f) -(int) f2.带⼀个参数(函数名 f:x) -(int) f:(int)x 类似c语⾔中的 int f(int x) 函数3.带两个参数 (函数名 f::) -(float) f:int(x) :(int) y 类似c语⾔中的 float f(int x, int y) 函数上述函数可以改为 -(float) f:int(x) g:(int) y 这⾥g表⽰标签,函数名是f:g:, 第⼀个参数不能有标签,事实上函数名就是第⼀个参数的标签函数调⽤对⽐。
Object-C 经典入门教程
Object-C 入门教程分类:Sip&asterisk2009-05-04 16:34 16409人阅读评论(2) 收藏举报大纲o开始吧下载这篇教学o设定环境o前言o编译 hello worldo创建 Classes@interfaceo@implementationo把它们凑在一起o详细说明...多重参数o建构子(Constructors)o访问权限o Class level accesso异常情况(Exceptions)处理o继承、多型(Inheritance, Polymorphism)以及其他面向对象功能id 型别o继承(Inheritance)o动态识别(Dynamic types)o Categorieso Posingo Protocolso内存管理Retain and Release(保留与释放)o Dealloco Autorelease Poolo Foundation Framework ClassesNSArrayo NSDictionary∙优点与缺点∙更多信息开始吧下载这篇教学▪所有这篇初学者指南的原始码都可以由objc.tar.gz下载。
这篇教学中的许多范例都是由 Steve Kochan 在Programming in Objective-C. 一书中撰写。
如果你想得到更多详细信息及范例,请直接参考该书。
这个网站上登载的所有范例皆经过他的允许,所以请勿复制转载。
设定环境▪Linux/FreeBSD: 安装GNUStep为了编译 GNUstep应用程序,必须先执行位于/usr/GNUstep/System/Makefiles/GNUstep.sh 的GNUstep.sh 这个档案。
这个路径取决于你的系统环境,有些是在 /usr, some /usr/lib,有些是/usr/local。
如果你的 shell 是以 csh/tcsh 为基础的 shell,则应该改用 GNUStep.csh。
object-c seturlschemehandler 用法
object-c seturlschemehandler 用法object-c的seturlschemehandler是用来设置URL scheme handler 的方法。
URL scheme是一种用来唯一标识一个应用程序的协议头,类似于http://、https://等。
seturlschemehandler方法可以用来指定一个应用程序处理特定的URL scheme。
具体用法如下:1. 导入"UIApplication+URLScheme.h"头文件,该文件定义了seturlschemehandler方法。
```#import "UIApplication+URLScheme.h"```2. 在需要设置URL scheme handler的地方调用seturlschemehandler方法。
该方法有两个参数,第一个参数是要处理的URL scheme,第二个参数是一个block,用来处理该URL scheme的操作。
```[UIApplication setURLSchemeHandler:^(NSURL *url) {// 这里可以处理传入的url,执行自定义的操作if ([url.scheme isEqualToString:@"myscheme"]) {// 处理myscheme的逻辑}}];```在上述示例中,我们指定了使用block来处理"myscheme"这个URL scheme。
当用户通过"myscheme://"打开应用程序时,会进入到block中执行自定义的逻辑。
值得注意的是,seturlschemehandler方法需要在应用程序启动时调用,通常在AppDelegate的`application:didFinishLaunchingWithOptions:`方法中调用。
```- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// 设置URL scheme handler[UIApplication setURLSchemeHandler:^(NSURL *url) {// 处理URL scheme的操作}];return YES;}```以上就是object-c的seturlschemehandler方法的用法。
object-c中的BOOL类型
object-c中的BOOL类型object-c中的布尔类型⽐C语⾔中的bool类型早了10年,它具有YES和NO两种值。
在object-c中的布尔类型BOOL实际上是⼀种带符号的字符类型(signed char),它使⽤的空间是1byte,即8bit,其中YES定义为1,NO定义为0。
将⼤于1字节的整形数(⽐如short或者int)赋给BOOL变量,会被截断处理,只保留末尾的8个bit。
以下是object-c中使⽤BOOL类型的例⼦:#import <Foundation/Foundation.h>//⽐较两个int数是否⼀样BOOL areINTsDifferent(int thing1,int thing2){if(thing1==thing2)return NO;elsereturn YES;}//返回BOOL类型的数对应的NSString字符串NSString * boolString(BOOL yesNo){if(yesNo==YES)return@"YES";elsereturn@"NO";}int main(int argc, const char * argv[]) {BOOL areTheyDifferent ;areTheyDifferent= areINTsDifferent(6,6);//下⾯的%@表⽰NSString占位符NSLog(@"are %d and %d different? %@",6,6,boolString(areTheyDifferent));areTheyDifferent = areINTsDifferent(23,42);NSLog(@"are %d and %d different? %@",23,42,boolString(areTheyDifferent));return0;}输出的结果:2016-04-04 23:18:48.964 hello-obj[1267:84194] are 6 and 6 different? NO2016-04-04 23:18:48.965 hello-obj[1267:84194] are 23 and 42 different? YES。
各类词性语法语英法说
名词性从句:NounClauses. 语法grammar句法synta x词法morp hology结构structure层次rank句子senten ce从句cla use词组ph rase词类part of sp eech单词w ord实词no tional wor d虚词stru ctural wor d单纯词simp le word派生词derivativ e复合词compo und词性par t of speec h名词noun专有名词prop er noun普通名词common noun可数名词countabl e noun不可数名词uncoun table noun抽象名词abs tract noun具体名词con crete noun物质名词mat erial noun集体名词col lective no un个体名词i ndividualnoun介词p reposition连词conju nction动词verb主动词main verb及物动词tra nsitive ve rb不及物动词intransiti ve verb系动词link ve rb助动词au xiliary ve rb情态动词m odal verb(modal aux iliary ver b) 规则动词re gular verb不规则动词ir regular ve rb短语动词p hrasal ver b限定动词fi nite verb非限定动词inf inite verb使役动词cau sative ver b感官动词ve rb of sens es动态动词e vent verb静态动词stat e verb感叹词exclamat ion形容词a djective 副词adverb方式副词adve rb of mann er程度副词a dverb of d egree时间副词adverb o f time地点副词adverbof place 修饰性副词adju nct连接性副词conjunct疑问副词inte rrogativeadverb 关系副词relativ e adverb 代词pronoun人称代词per sonal pron oun物主代词possessive pronoun 反身代词refle xive prono un相互代词r eciprocalpronoun指示代词demons trative pr onoun 疑问代词interrog ative pron oun 关系代词relative p ronoun不定代词indefin ite pronou n物主代词po ssessive p ronoun名词性物主代词nomi nal posses sive prono un形容词性物主代词adjecti val posses sive prono un 冠词art icle定冠词definite a rticle不定冠词indefin ite articl e数词nume ral基数词c ardinal nu meral序数词ordinal n umeral分数词fraction al numeral形式form单数形式sing ular form复数形式plur al form限定动词finite verb form非限定动词no n-finite v erb form 原形base fo rm从句cl ause从属句subordinat e clause 并列句coordi nate claus e名词从句no minal clau se (noun c lauses)定语从句attribu tive claus e状语从句ad verbial cl ause宾语从句object cl ause主语从句subject c lause同位语从句apposit ive clause时间状语从句a dverbial c lause of t ime地点状语从句adverbia l clause o f place方式状语从句adve rbial clau se of mann er让步状语从句adverbial clause of concessio n原因状语从句adverbialclause ofcause结果状语从句adverb ial clause of result目的状语从句a dverbial c lause of p urpose条件状语从句adver bial claus e of condi tion真实条件状语从句adver bial claus e of realcondition非真实条件状语从句adverbial clause of unreal co ndition 含蓄条件句adver bial claus e of impli ed conditi on错综条件句adverbialclause ofmixed cond ition句子sentence简单句simpl e sentence复杂句(复合句) complex s entence复合句(并列句)com pound sent ence复合复杂句(并列复合句)compound c omplex sen tence 陈述句declarati ve sentenc e疑问句int errogative sentence一般疑问句gen eral quest ion特殊疑问句special q uestion选择疑问句alter native que stion附加疑问句tag que stion反义疑问句disjunc tive quest ion修辞疑问句rhetorica l question感叹疑问句ex clamatoryquestion 存在句existe ntial sent ence肯定句positive s entence基本句型basic sentencepattern否定句negativ e sentence祈使句impe rative sen tence省略句elliptica l sentence感叹句excl amatory se ntence句子成分member s of sente nces主语s ubject谓语predicate(predicat e verb)宾语object双宾语dual ob ject直接宾语direct ob ject间接宾语indirectobject复合宾语complex object同源宾语cognat e object 补语complem ent表语su bject comp lement (or predicati ve 大谓语) 宾补object co mplement 定语attribu te同位语ap positive 状语adverbi al句法关系syntacticrelationsh ip并列coo rdinate从属subordin ation修饰modificati on前置修饰p re-modific ation后置修饰post-mod ification限制restri ction双重限制double-r estriction非限制non-restrictio n数numb er单数形式s ingular fo rm复数形式p lural form规则形式re gular form不规则形式ir regular fo rm格cas e普通格com mon case 所有格posses sive case主格nomina tive case宾格object ive case 性gender阳性mascul ine阴性fe minine通性common中性neuter 人称person第一人称fi rst person第二人称sec ond person第三人称thi rd person时态tense (past pr esent fu ture)体as pect (gene ral progr essive/con tinuous perfect) 过去将来时pastfuture ten se过去将来进行时past fut ure contin uous tense过去将来完成时past futur e perfecttense一般现在时present simple te nse一般过去时past simp le tense 一般将来时futu re simpletense过去完成时past per fect tense现在完成时pre sent perfe ct tense 将来完成时futu re perfect tense现在进行时presen t continuo us tense 过去进行时past continuou s tense将来进行时futur e continuo us tense 过去将来进行时pa st futurecontinuous tense现在完成进行时pres ent perfec t continuo us tense 过去完成进行时pa st perfect continuou s tense语态voice 主动语态activ e voice被动语态passiv e voice语气mood陈述语气indica tive mood祈使语气impe rative moo d 虚拟语气su bjunctivemood否定negation 否定范围scope of negati on 全部否定f ull negati on局部否定p artial neg ation 转移否定shift of negation语序order自然语序nat ural order倒装语序inv ersion全部倒装full in version部分倒装partia l inversio n直接引语d irect spee ch间接引语i ndirect sp eech自由直接引语free di rect speec h自由间接引语free indir ect speech一致agre ement主谓一致subject-predicateagreement语法一致gram matical ag reement概念一致notion al agreeme nt就近原则p rinciple o f proximit y强调emp hasis重复repetition语音pronu nciation 语调tone 升调risingtone降调f alling ton e降升调fal ling-risin g tone文体style正式文体formal非正式文体in formal口语spoken/or al English套语formu listic exp ression 用法usage 感情色彩emoti onal color ing 褒义co mmendatory贬义derog atory幽默humorous 讽刺sarcast ic挖苦iro nic。
iOSobject-c:枚举类型enum,NS_ENUM,NS_OPTIONS
iOSobject-c:枚举类型enum,NS_ENUM,NS_OPTIONS⼀般情况下,我们采⽤C风格的enum关键字可以定义枚举类型。
[cpp]1. enum{2. UIViewAnimationTransitionNone,3. UIViewAnimationTransitionFlipFromLeft,4. UIViewAnimationTransitionFlipFromRight,5. UIViewAnimationTransitionCurlUp,6. UIViewAnimationTransitionCurlDown,7. } UIViewAnimationTransition;[cpp]1. //位移操作枚举定义2. enum {3. UIViewAutoresizingNone = 0,4. UIViewAutoresizingFlexibleLeftMargin = 1 << 0,5. UIViewAutoresizingFlexibleWidth = 1 << 1,6. UIViewAutoresizingFlexibleRightMargin = 1 << 2,7. UIViewAutoresizingFlexibleTopMargin = 1 << 3,8. UIViewAutoresizingFlexibleHeight = 1 << 4,9. UIViewAutoresizingFlexibleBottomMargin = 1 << 510. };11. typedef NSUInteger UIViewAutoresizing;//使⽤NSUInteger的地⽅可以使⽤UIViewAutoresizing,//UIViewAutoresizing相当于NSUInteger的⼀个别名使⽤。
12. //因此⼀个UIViewAutoresizing的变量可以直接赋值给NSUInteger枚举值⼀般是4个字节的int值,在64位系统上是8个字节。
ObjectC学习笔记2-NSLog格式化输出数据
ObjectC学习笔记2-NSLog格式化输出数据 1 . ⼏种常⽤类型变量声明 int i =10; BOOL isShow=YES; BOOL isShow=1; float f = 3.1415926; char a =120; NSString *name =@"Himi"; object-c中BOOL类型长度1byte, 若将short或int型数赋值给BOOL类型则截取低位1个字节. object-c 中字符串类型的声明和java,C# 有点不⼀样,string 在⾯向对象语⾔中是⼀个引⽤类型,在object-c中是使⽤指针。
2. NSLog常⽤的⼏种输出 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];//常⽤类型的定义int i =10;BOOL isShow=TRUE;float f = 3.1415926;char a =120;NSString *name =@"Himi";//常⽤打印语句NSLog(@"字符串:%@",name);NSLog(@"字符:%c",a);NSLog(@"布尔值:%i",isShow);NSLog(@"整形:%i",i);NSLog(@"单精度浮点数: %f",f);NSLog(@"精度浮点数,且只保留两位⼩数:%.2f",f);NSLog(@"科学技术法:%e",f);NSLog(@"科学技术法(⽤最简短的⽅式):%g",f);NSLog(@"同时打印两个整数:i=%i,f=%f",i,f);[pool drain]; 以上是⼏种常⽤的NSLog 输出的格式化例⼦,⾮常简单。
宾语补足语缩写
宾语补足语缩写subject s主predicate v谓object o宾attributive attrib定complement c补adverbial状语,好像没缩写吧predicative p表语1、主语subject S2、谓语predicate V3、表语predicative4、宾语object O5、宾补object complement OC6、状语adverbial7、定语attribute8、同位语appositive9、插入语parenthesis S--SUBJECT 主语V--VERB 动词O——object 宾语P--表语OC——object completment 宾语补足语IO——inderect objiect间接宾语DO——derect object 直接宾语S+V 主谓结构S+V+O 主谓宾结构S+V+O+OC 主谓宾+宾语补足语S+V+P 主语+动词+表语S+V+IO+DO 主谓+间接宾语+直接宾语结构1、主语(subject)是句子叙述的主体,一般置于句首,可由名词、代词、数词、名词化的形容词、不定式、动名词和主语从句等来承担。
2、谓语(predicate)说明主语所发出的动作或具有的特征或状态,一般由动词来承担。
谓语是对主语动作或状态的陈述或说明,指出“做什么”和“是什么”或“怎么样”,谓语动词的位置一般在主语之后。
3、宾语(object),又称受词,是指一个动作(动词)的对象或接受者,常位于及物动词或介词后面。
宾语分为直接宾语和间接宾语(间接宾语也称宾语补足语)两大类,其中直接宾语指动作的直接对象,间接宾语说明动作的非直接,但受动作影响。
4、定语(Attributive)是用来修饰、限定、说明名词或代词的品质与特征的成分。
定语主要有形容词此外还有名词、代词、数词、介词短语、动词不定式(短语)、分词、定语从句或相当于形容词的词、短语或句子。
5、状语,英语中,修饰动词、形容词、副词等的句子成分叫状语(adverbial)。
「大学Javascript网络课考试题答案」
一、选择题(20分)共10题1、Javascript可以使用以下哪种软件进行编写( B)A、VBB、NotepadC、VFD、Access2、Javascript语言使用( A)代码嵌入到网页中A、<Script>...</Script>B、<applet>...</applet>C、<style>…</style>D、<link>…</link>3、以下哪种说法是正确的表述(B)A、Javascript语言即使开发简单的程序也需要设计对象B、JavaScript是一种脚本语言C、JavaScript是面向对象的编程语言D、以上全部正确4、Javascript语言是(B)公司开发的产品A、微软B、NetscapeC、SUND、HP5、以下哪种说法是正确的表述(C)A、continue和break语句都是结束整个循环B、continue语句只结束整个循环,而break语句则结束本次循环C、continue语句只结束本次循环,而break语句则结束整个循环D、以上全部错误6、以下哪种说法是正确的表述(A)A、函数名是区分大小写的,因此,在函数调用时,应注意函数名的大小写。
B、函数调用比较简单,使用函数名加上中括号即可。
C、在编程语言中,在函数内部定义的变量和在函数外部定义的变量是没有区别的。
D、以上全部正确7、以下哪种说法是正确的表述(C)A、在JavaScript脚本编程中,使用全局函数可提高编程效率,但会增加程序负担。
B、局部变量的作用域是函数的所有语句。
C、在不同的函数定义中可以使用相同的变量名。
D、以上全部错误8、以下哪个不是Javascript的内置对象(A)A、windowB、StringC、GlobalD、Array9、Math.ceil(数值)方法含义(B)A、小于等于概述值的最小整数B、大于等于概述值的最小整数C、将数值四舍五入D、取数值中小数后面的整数10、创建Date对象的常见方式有三种,除了哪项(B)A、不带参数B、创建一个指定年份的Date变量C、创建一个指定日期的Date变量D、创建一个指定时间的Date变量11、用()处理数组,可以依次对数组中的每个数组元素执行一条或多条语句(A)A、for…in语句B、While语句C、If else语句D、For语句12、以下哪个不是Date对象的主要方法(C)A、getMinutes()B、getSeconds()C、toString ()D、toGMTString()13、以下哪个不是Math对象的主要方法(C)A、random()B、floor()C、strike()D、pow()14、以下哪个不是window对象的方法(D)A、focus()B、forward()C、close()D、reload()15、href()是哪个对象的方法(B)A、window对象B、location对象C、navigator对象D、history对象16、location对象reload()方法的具体含义是(B)A、用指定的网页取代当前网页(使后退按钮不能使用)B、重新加载,如果使用参数TRUE,则表示从服务器重新加载C、表示URL中的查询信息D、重新加载父窗口17、以下哪个不是Document对象属性(D)A、cookieB、imagesC、formsD、close18、以下哪个不是Document对象方法(D)A、writeB、routeEventC、getSelectionD、anchors19、以下哪些不是表单元素对象(C)A、单选对象B、选择对象C、单击对象D、按钮对象20、计算下列程序的值(D)<script language=javascript>var s,q;s=55;q = (s>=60)?66:70;document.write(q);</script>A、55B、60C、65D、70二、填空题(20分)共10空1、JavaScript是一种基于对象(Object)和事件驱动(EventDriver)并具有安全性能的脚本语言。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
复合
李振
概念:复合是通过包含作为实例变量的对象指针实现的(只有对象间的组合才能叫复合)。
#import <Foundation/Foundation.h>
@interface Tire : NSObject -----------------①
@end -----------------①
@implementation Tire
- (NSString *) description{
return (@"i am a tire, i last a while");
}
@end
@interface Engine : NSObject ---------------②
@end ---------------②
@implementation Engine
- (NSString *)description{
return (@"i am a engine wuwuwuwu");
}
@end
@interface Car : NSObject
{
Engine *engine;
Tire *tires[4];
}
- (Engine *) engine;
- (void) setEngine: (Engine *) newEngine;
- (Tire *) tireAtindex : (int) index;
- (void) setTile: (Tire *) tile atindex: (int) index;
- (void) print;
@end
@implementation Car
- (Engine *)engine{
return engine;
}
- (void)setEngine:(Engine *)newEngine{
engine = newEngine;
}
- (void)setTile:(Tire *)tile atindex:(int)index{
if(index <0 || index> 3){
NSLog(@"bad index %d in setTire:atindex",index); exit(1);
}
tires[index]=tile;
}
- (Tire *)tireAtindex:(int)index{
if(index < 0 || index > 3){
NSLog(@"bad index %d in tireAtIndex",index);
exit(1);
}
return tires[index];
}
- (void)print{
NSLog(@"%@", engine);
NSLog(@"%@", tires[0]);
NSLog(@"%@", tires[1]);
NSLog(@"%@", tires[2]);
NSLog(@"%@", tires[3]);
}
@end
@interface Slant6 : Engine --------------③
@end --------------③
@implementation Slant6
- (NSString *)description{
return (@"i am a slant-6 veoom");
}
@end
@interface AllWeatherRadial : Tire ------------④
@end --------------④
@implementation AllWeatherRadial
- (NSString *)description{
return (@"i am a tire for rain or shine");
}
@end
int main(int argc, const char *argv[]){
Car *car = [Car new];
Engine *engine = [Slant6 new];
[car setEngine:engine];
for(int i = 0; i < 4; i++){
Tire *tire = [AllWeatherRadial new];
[car setTile:tire atindex:i];
}
[car print];
return 0;
}
类中没有包含任何实例变量,便可以省略掉接口定义中的花括号。
例如①②③④。
存取方法:
概念:用来读取或改变某个对象属性的方法。
存取方法分类:
1.setter方法:为对象中的变量赋值。
(编写习惯:根据它所更改的属性的名称来命名,并
加上前缀set)
2.getter方法:通过对象自身访问对象属性。
(以其返回的属性名称命名,不要将get用作
getter方法的前缀。
)
3.mutator方法:用来更改对象状态。
例如:
- (Engine *) engine;
- (void) setEngine: (Engine *) newEngine;
- (Tire *) tireAtindex : (int) index;
- (void) setTile: (Tire *) tile atindex: (int) index;
- (void) print
复合还是继承
继承的类之间建立的关系为“is a“(是一个)。
如果可以说”X是一个Y“,那就可以使用继承。
复合的类之间建立的关系为“has a“(有一个)。
如果可以说”X有一个Y“,那就可以使用复合。