objective-c new关键字
xxx *a = [xxx new] 等价于 xxx *a = [[xxx alloc]init] ,但如果类的构造函数带参数就不能使用new了。
练习了下《Objective-C 基础教程》第3章代码。
Share.h 头文件
// // Share.h // SharesDemo01 // // Created by apple on 13-7-15. // Copyright (c) 2013年 FDStudio. All rights reserved. // #import <Foundation/Foundation.h> typedef enum{ KCircle, KRectangle, KOblateSpheroid } ShareType; typedef enum{ KRedColor, KGreenColor, KBlueColor } ShareColor; typedef struct{ int x,y,width,height; } ShareRect; @interface Share : NSObject{ ShareColor fillColor; ShareRect bounds; } -(void)setFillColor:(ShareColor)c; -(void)setBounds:(ShareRect)rect; -(NSString *) ColorName:(ShareColor) c; -(void)draw; @end //Share @interface Circle : Share @end //Circle @interface Rectangle : Share @end //Rectangle
Share.m 实现文件
// // Share.m // SharesDemo01 // // Created by apple on 13-7-15. // Copyright (c) 2013年 FDStudio. All rights reserved. // #import "Share.h" @implementation Share -(void)setFillColor:(ShareColor)c{ fillColor = c; } //setFillColor -(void)setBounds:(ShareRect)rect{ bounds = rect; } //setBounds -(NSString *)ColorName:(ShareColor)c{ switch (c) { case KRedColor: return @"red"; break; case KBlueColor: return @"blue"; break; case KGreenColor: return @"green"; break; } return @"no clue"; } -(void)draw{ } //draw @end //Share @implementation Circle -(void)draw{ NSLog(@"drawing a circle at (%d %d %d %d) in %@", bounds.x, bounds.y,bounds.width,bounds.height, [self ColorName:fillColor]); } @end //Circel @implementation Rectangle -(void)draw{ NSLog(@"drawing a Rectangle at (%d %d %d %d) in %@", bounds.x, bounds.y,bounds.width,bounds.height, [self ColorName:fillColor]); } @end
main.m 主文件
// // main.m // SharesDemo01 // // Created by apple on 13-7-15. // Copyright (c) 2013年 FDStudio. All rights reserved. // #import <Foundation/Foundation.h> #import "share.h" int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... id shares[2]; ShareRect rect0 = {0,0,10,30}; shares[0] = [Circle new]; [shares[0] setBounds:rect0]; [shares[0] setFillColor:KRedColor]; ShareRect rect1 = {30,40,50,60}; shares[1] = [Rectangle new]; [shares[1] setBounds:rect1]; [shares[1] setFillColor:KBlueColor]; for(int i=0; i<2; i++){ [shares[i] draw]; } } return 0; }
objective-c new关键字的更多相关文章
- CoreData教程
网上关于CoreData的教程能搜到不少,但很多都是点到即止,真正实用的部分都没有讲到,而基本不需要的地方又讲了太多,所以我打算根据我的使用情况写这么一篇实用教程.内容将包括:创建entity.创建r ...
- Automake
Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...
- 作为一个新手的Oracle(DBA)学习笔记【转】
一.Oracle的使用 1).启动 *DQL:数据查询语言 *DML:数据操作语言 *DDL:数据定义语言 DCL:数据控制语言 TPL:事务处理语言 CCL:指针控制语言 1.登录 Win+R—cm ...
- Objective C ARC 使用及原理
手把手教你ARC ,里面介绍了ARC的一些特性, 还有将非ARC工程转换成ARC工程的方法 ARC 苹果官方文档 下面用我自己的话介绍一下ARC,并将看文档过程中的疑问和答案写下来.下面有些是翻译,但 ...
- Objective -C学习笔记之字典
//字典:(关键字 值) // NSArray *array = [NSArray array];//空数组 // NSDictionary *dictionary = [NSDictionary d ...
- Objective - C中属性和点语法的使用
一.属性 属性是Objective—C 2.0定义的语法,为实例变量提供了setter.getter方法的默认实现能在一定程度上简化程序代码,并且增强实例变量的访问安全性 ...
- Qt for iOS,Qt 与Objective C混合编程
项目设置 既然要聊 Qt 混合 OC 编程,首先要简单介绍一下 Objective C .我只有一句话:Go,问搜索引擎去.因为我所知实在有限,怕误导了您.当然如果您不怕,往下看吧. OC源文件介绍 ...
- iOS开发——新特性OC篇&Objective新特性
Objective新特性 Overview 自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时, ...
- Objective中的协议(Protocol)
Objective中的协议(Protocol) 作用: 专门用来声明一大堆方法. (不能声明属性,也不能实现方法,只能用来写方法的声明). 只要某个类遵守了这个协议.就相当于拥有这个协议中的所有的方法 ...
- iOS完全自学手册——[三]Objective-C语言速成,利用Objective-C创建自己的对象
1.前言 上一篇已经介绍了App Delegate.View Controller的基本概念,除此之外,分别利用storyboard和纯代码创建了第一个Xcode的工程,并对不同方式搭建项目进行了比较 ...
随机推荐
- GPIO的8种工作模式
1.浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1 2.带上拉输入GPIO_IPU——IO内部上拉电阻输入 3.带下拉输入GPIO_IPD——IO内部下拉电阻输入 4 ...
- Javascript计数器
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...
- 一点点webservice的小知识
怕自己忘了记录下来好了 在web.config中要配置自己要调用的webservice的地址 在自己controller中获取web.config中配置的地址 SystemManager.Config ...
- jQuery之load、unload、onunload和onbeforeunload
1.load:jQuery load() 方法是简单但强大的 AJAX 方法.load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法:$(selector).load(URL,dat ...
- ubuntu 输入时弹出剪切板候选项
fcitx很坑的把这个功能的快捷键设置成了ctrl + ;结果我在用vim的时候怎么也 没法输入command 不知道是哪次更新引入的,简直是坑人! 我找了半天系统设置都没找到这个快捷键是在哪设置的. ...
- python类的定义和使用
python中类的声明使用关键词class,可以提供一个可选的父类或者说基类,如果没有合适的基类,那就用object作为基类. 定义格式: class 类名(object): "类的说明文档 ...
- IOS 动画的各种实现方法
#import "ViewController.h"#import <QuartzCore/QuartzCore.h> @interface ViewControlle ...
- 破解 crackme4(深入底层抓出关键算法)
系统 : Windows xp 程序 : crackme4 程序下载地址 :http://pan.baidu.com/s/1nu452xN 要求 : 注册机编写 使用工具 : OD & IDA ...
- NGUI悬浮菜单思路实践
使用NGUI制作悬浮菜单.在UIAnchor锚点下的Offset建立背景和按钮菜单.同过InputMouseXY的位置判断.是否应该弹出和收回.OffSet在此处是作为TweenGameObject的 ...
- IDataReader转换成list通用方法
public static IList<T> ReaderToList<T>(this IDataReader dr) { //DateTime dt = DateTime.N ...