cocoa

类:

传统的写法:
Demo.h

//
// Demo.h
// demoClass
//
// Created by 王 on 13-12-16.
// Copyright (c) 2013年 Bo Li. All rights reserved.
// #import <Foundation/Foundation.h> @interface Demo : NSObject
{
int age;
int ide;
NSString *name;
} //初始化方法
-(id)initWithAge:(int)_age andIde:(int)_ide andName:(NSString *)_name; -(void)setAge:(int)_age; -(int)getAge; -(void)setIde:(int)_ide; -(int)getIde; -(void)setName:(NSString *)_name; -(NSString *)getName; @end

Demo.m

//
// Demo.m
// demoClass
//
// Created by 王 on 13-12-16.
// Copyright (c) 2013年 Bo Li. All rights reserved.
// #import "Demo.h" @implementation Demo
//初始化方法,只有[super init]初始化父类成功后子类才能初始化
-(id)initWithAge:(int)_age andIde:(int)_ide andName:(NSString *)_name{
if(self = [super init]){
age = _age;
ide = _ide;
name = _name;
}
return self;
} -(void)setAge:(int)_age{
age = _age;
} -(int)getAge{
return age;
} -(void)setIde:(int)_ide{
ide = _ide;
} -(int)getIde{
return ide;
} -(void)setName:(NSString *)_name{
name = _name;
} -(NSString *)getName{
return name;
} @end

main.m

//
// main.m
// demoClass
//
// Created by 王 on 13-12-10.
// Copyright (c) 2013年 Bo Li. All rights reserved.
// #import <Foundation/Foundation.h>
#import "Test.h"
#import "Demo.h"
int main(int argc, const char * argv[])
{ @autoreleasepool {
// insert code here...
NSLog(@"Hello, World!"); Demo *d = [[Demo alloc] initWithAge: andIde: andName:@"lily"]; NSLog(@"she is %d,and hers identify is %d,she names %@",[d getAge],[d getIde],[d getName]); }
return ;
}

OC特有的用法(设置器@property和访问器@synthesize)
Demo.h

//
// Demo.h
// demoClass
//
// Created by 王 on 13-12-16.
// Copyright (c) 2013年 Bo Li. All rights reserved.
// #import <Foundation/Foundation.h> @interface Demo : NSObject
{
int age;
int ide;
NSString *name;
} //初始化方法
-(id)initWithAge:(int)_age andIde:(int)_ide andName:(NSString *)_name; @property(nonatomic) int age;
@property(nonatomic) int ide;
@property(nonatomic,retain) NSString *name;
@end

Demo.m

//
// Demo.m
// demoClass
//
// Created by 王 on 13-12-16.
// Copyright (c) 2013年 Bo Li. All rights reserved.
// #import "Demo.h" @implementation Demo
//初始化方法,只有[super init]初始化父类成功后子类才能初始化
-(id)initWithAge:(int)_age andIde:(int)_ide andName:(NSString *)_name{
if(self = [super init]){
age = _age;
ide = _ide;
name = _name;
}
return self;
} @synthesize age;
@synthesize ide;
@synthesize name; @end

main.m

//
// main.m
// demoClass
//
// Created by 王 on 13-12-10.
// Copyright (c) 2013年 Bo Li. All rights reserved.
// #import <Foundation/Foundation.h>
#import "Test.h"
#import "Demo.h"
int main(int argc, const char * argv[])
{ @autoreleasepool {
// insert code here...
NSLog(@"Hello, World!"); Demo *d = [[Demo alloc] initWithAge: andIde: andName:@"lily"]; NSLog(@"she is %d,and hers identify is %d,she names %@",[d age],[d ide],[d name]); }
return ;
}

备注:
在@property()得括号中,可以填写的属性有:
readwrite:默认
readonly:只读,意味着没有set方法,只有get方法
assign:默认,引用计数不增加(一般用于基本数据类型,如int)
retain:引用计数增加(一般用于对象方面,如NSString *name)
actomic:默认,原子性
nonatomic:非原子性。是OC中一种线程保护技术,防止在未完成的时候,被另外一个线程使用,造成数据错误。

点语法:(看下面代码即可明白)

//
// main.m
// demoClass
//
// Created by 王 on 13-12-10.
// Copyright (c) 2013年 Bo Li. All rights reserved.
// #import <Foundation/Foundation.h>
#import "Test.h"
#import "Demo.h"
int main(int argc, const char * argv[])
{ @autoreleasepool {
// insert code here...
NSLog(@"Hello, World!"); Demo *d = [[Demo alloc] initWithAge: andIde: andName:@"lily"]; d.age = ;
d.name = @"hhaa"; NSLog(@"she is %d,and hers identify is %d,she names %@",[d age],[d ide],[d name]); }
return ;
}

static关键字:
类体内的全局变量声明。

static int count = ;

要点:
1.声明在任何方法之外;
2.在该文件内;
3.所有位于这条语句之后的方法都可以访问count得值,而其他文件中的方法则不可。

UIKIT

UIView:视图的基础,
UIViewControl:视图控制器的基类,
UIResponder:表示一个可以接收触摸屏上的触摸事件的对象。

窗口(UIWindow):
      窗口是视图(UIView)的一个子类。
窗口的主要功能:
  1.提供一个区域来显示视图;
  2.将事件(event)分发给视图;
注意:一个应用通常只有一个窗口,但是也有例外。

UIScreen:获取硬件设备的屏幕尺寸,在做适配的时候用到,比如iphone的屏幕和ipad的屏幕。

IOS坐标系统:

CGPoint potin = CGPointMake(x,y);//位置
CGSize size = CGSizeMake(w,h);//大小
CGRect rect = CGRectMake(x,y,w,h);//位置和大小。

Frame,Bounds,Center:
Frame:以其父视图为起点,得到他自己的位置信息;
Bounds:以IOS的坐标(0,0)为原点;
Center:表示视图中心点所在位置。

创建视图:

    //通过xib的方式来创建视图对象
NSBundle *bundle = [NSBundle mainBundle];
NSArray *arr = [bundle loadNibNamed:@"myView" owner:self options:nil];
UIView *myView = [arr objectAtIndex:]; //通过代码创建视图对象
CGRect viewRect = CGRectMake(, , , );
UIView *myView = [[UIView alloc] initWithFrame:viewRect];

视图调用方法(视图的层次关系):

//基本的添加和删除子视图
addSubview: //添加子视图
insertSubview:atIndex: //视图插入到指定索引位置
insertSubview:aboveSubview: //视图插入指定视图之上
insertSubview:belowSubview: //视图插入指定视图之下
bringSubviewToFront: //把视图移动到最顶层
sendSubviewToBack: //把视图移动到最底层
exchangeSubviewAtIndex:withSubviewAtIndex: //把两个索引对应的视图调换位置
removeFromSuperview: //把视图从父视图中移除

备注:当调用addSubview的时候会对其进行保留,可理解为retain一个对象;
         当调用removeFromSuperview的时候会对其进行释放,可理解为release一个对象。

Object-C基础的更多相关文章

  1. JavaScript对象 Object类型基础

    前言 JavaScript 对象是整个语言学习的一个难点.本文主要带大家入门学习Object知识 对象定义 javascript的基本数据类型包括undefined.null.boolean.stri ...

  2. Object c 基础知识

    文件类型说明:.h 头文件,用于定义类.实例变量及类中的方法等定义信息(interface)..m 源文件,定义方法体,可实现objce-c和c方法(implementation)..mm c++源文 ...

  3. Object -c基础知识(5)--release 之后 retainCount为何为1

    在XCode中加入如下代码:  UILabel *label=[UILabel alloc]; [label setText:@"TestLabel"]; NSLog(@" ...

  4. .NET面试题系列[13] - LINQ to Object

    .NET面试题系列目录 名言警句 "C# 3.0所有特性的提出都是更好地为LINQ服务的" - Learning Hard LINQ是Language Integrated Que ...

  5. java语言中Object转为String的几种形式

    在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toString(),(String)要转换的对象,St ...

  6. C#/.NET 基础学习

    初识C# C#是微软公司发布的面向对象的.运行于.NET Framework之上的高级程序设计语言.与Java有着明显不同,借鉴Delphi的特点,与COM(组件对象模型)直接集成,是微软公司 .NE ...

  7. Java 类型转换以及Object转成其他类型

    Object转int int count=(int)map.get("count") int count=Integer.parseInt((String)map.get(&quo ...

  8. JavaScript 中的Object的使用详解笔记(一)

    昨天的学习笔记,今天更新上.第三遍看oop,还是理解的比较到位了.   1.JavaScript的组成:ECMAScript(最新6) + DOM + BOM 2.数组与对象的应用: object的基 ...

  9. 转!!java中Object转String

    Object转为String的几种形式 在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toString ...

  10. java中Object转String

      Object转为String的几种形式 在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toStri ...

随机推荐

  1. oracle 常用语句

    创建用户及授权create temporary tablespace test_temp tempfile 'C:\oracle\product\10.2.0\oradata\hszxdbtemp.d ...

  2. js画线

    <body> <div id="main"> </div> <div id="fd" style="filt ...

  3. html --- javascript --- div --- 拖拽方块

    当鼠标拖拽的很快时,光标会走出方块,所以把事件注册在了方块的父节点上, 如有疑问请参照:http://blog.csdn.net/a9529lty/article/details/2708171 使用 ...

  4. PHP 解压zip文件的函数封装

    /** * zip文件解压 * * @param $zipFilePath zip文件的路径,可以不加zip文件后缀.如果其他类型的文件伪装成zip解压也会失败 * @param $directory ...

  5. 【转】requirejs简单入门

    博主今天正式工作啦,工作中用到了js模块化技术,这里转来一个入门教程,很易懂,转给同样刚入门的你们~~ 原地址:http://www.ruanyifeng.com/blog/2012/11/requi ...

  6. PIC和PIE

    PIC指的是位置无关代码,用于生成位置无关的共享库,所谓位置无关,指的是共享库的代码断是只读的,存放在代码段,多个进程可同时公用这份代码段而不需要拷贝副本.库中的变量(全局变量和静态变量)通过GOT表 ...

  7. Eclipse使用技巧总结

    Eclipse设置工作空间的字符编码: 打开eclipse开发界面,依次点击Window->Preferences->General->Workspace 修改Text file e ...

  8. 用C#.NET调用Java开发的WebService传递int,double问题

    用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端可以得到string类型的属性值,却不能得到int类型.double和D ...

  9. bzoj2947: [Poi2000]促销

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 178  Solved: 119[Submit][Status][Discuss] Descriptio ...

  10. mediawiki 的使用 2

    要想外部电脑能访问你的网站,网站部署好后,在LocalSettings.php 里将这句 $wgServer = "http://localhost"; 改成 $wgServer ...