ios之点语法
2015-10-10 17:11
344 查看
第一个object c 程序
首先新建一个项目,“create a new Xcode project"-"OS X下的Application"-"Command Line Tool" ,命名为“点语法”,Type为“Foundation”,不要勾选“Use Automatic Reference Counting”这个选项(ARC是Xcode的内存自动管理机制,刚开始学的时候先自己管理内存,以后熟悉了再勾选),,最后再新建一个类,“File”-“New”-“File”-“Cocoa”-“Object-C class",命名为“Person”,基类为“NSObject”,接下来就是代码的编写,如下:
Person.h:
[cpp] view plaincopyprint?
//
// Person.h
// 点语法
//
// Created by Rio.King on 13-8-25.
// Copyright (c) 2013年 Rio.King. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
int _age;//默认为@protected
}
- (void)setAge:(int)age;
- (int)age;
@end
Person.m
[cpp] view plaincopyprint?
//
// Person.m
// 点语法
//
// Created by Rio.King on 13-8-25.
// Copyright (c) 2013年 Rio.King. All rights reserved.
//
#import "Person.h"
@implementation Person
- (void)setAge:(int)age
{
_age = age;//注意不能写成self.age = newAge,相当与 [self setAge:newAge];
}
- (int)age//object C 的调用get方法的命名习惯是直接用属性名,而不加get前缀,如getAge等。
{
return _age;
}
@end
main.m
[cpp] view plaincopyprint?
//
// main.m
// 点语法
//
// Created by Rio.King on 13-8-25.
// Copyright (c) 2013年 Rio.King. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
Person *person = [[Person alloc] init];
//[person setAge:10];
person.age = 10;//点语法,等效与[person setAge:10];注意,这里并不是给person的属性赋值,而是调用person的setAge方法
//int age = [person age];
int age = person.age;//等效与int age = [person age],,你可以试着打印出来看看。
NSLog(@"age is %i", age);
[person release];
}
return 0;
}
几点说明:
1.根据 Objective-C.Programming.The.Big.Nerd.Ranch.Guide.Jan.2012这本书里说的,,点语法一般不常用,经常用的是中括号的形式。如 [ person age]这样的形式。
2.函数前面的“-”代表的是动态方法,静态方法用”+“,,”-“和”+“都不能省略,不然编译器会报错。
3.点语法的本质是调用get方法和set方法。
4.不要忘了[person release]这句。
版权声明:本文为博主原创文章,未经博主允许不得转载。
首先新建一个项目,“create a new Xcode project"-"OS X下的Application"-"Command Line Tool" ,命名为“点语法”,Type为“Foundation”,不要勾选“Use Automatic Reference Counting”这个选项(ARC是Xcode的内存自动管理机制,刚开始学的时候先自己管理内存,以后熟悉了再勾选),,最后再新建一个类,“File”-“New”-“File”-“Cocoa”-“Object-C class",命名为“Person”,基类为“NSObject”,接下来就是代码的编写,如下:
Person.h:
[cpp] view plaincopyprint?
//
// Person.h
// 点语法
//
// Created by Rio.King on 13-8-25.
// Copyright (c) 2013年 Rio.King. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
int _age;//默认为@protected
}
- (void)setAge:(int)age;
- (int)age;
@end
Person.m
[cpp] view plaincopyprint?
//
// Person.m
// 点语法
//
// Created by Rio.King on 13-8-25.
// Copyright (c) 2013年 Rio.King. All rights reserved.
//
#import "Person.h"
@implementation Person
- (void)setAge:(int)age
{
_age = age;//注意不能写成self.age = newAge,相当与 [self setAge:newAge];
}
- (int)age//object C 的调用get方法的命名习惯是直接用属性名,而不加get前缀,如getAge等。
{
return _age;
}
@end
main.m
[cpp] view plaincopyprint?
//
// main.m
// 点语法
//
// Created by Rio.King on 13-8-25.
// Copyright (c) 2013年 Rio.King. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
Person *person = [[Person alloc] init];
//[person setAge:10];
person.age = 10;//点语法,等效与[person setAge:10];注意,这里并不是给person的属性赋值,而是调用person的setAge方法
//int age = [person age];
int age = person.age;//等效与int age = [person age],,你可以试着打印出来看看。
NSLog(@"age is %i", age);
[person release];
}
return 0;
}
几点说明:
1.根据 Objective-C.Programming.The.Big.Nerd.Ranch.Guide.Jan.2012这本书里说的,,点语法一般不常用,经常用的是中括号的形式。如 [ person age]这样的形式。
2.函数前面的“-”代表的是动态方法,静态方法用”+“,,”-“和”+“都不能省略,不然编译器会报错。
3.点语法的本质是调用get方法和set方法。
4.不要忘了[person release]这句。
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- iOS 支付宝接入报错
- iOS中GET 和 POST 数据请求
- iOS中GET 和 POST 数据请求
- iOS7 textView处理URL链接 以及点击 长按手势的处理
- iOS的音讯通知有两种方式,Badge Notification和Alert Notification
- iOS多工程依赖
- IOS 9 Remove CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
- iOS开发--OC篇--OC类与对象
- IOS多线程
- iOS常用第三方框架
- iOS ARC MRC情况下重写setter getter方法
- 又发现一个很好的ios博客--颐和园
- ios第二天
- ios第一天
- iOS几何类方法总结
- iOS动画实现方式 animation key path
- iOS大侠博客
- iOS 8 AutoLayout与Size Class自悟
- iOS 支付宝支付
- 斯坦福大学iOS7应用开发笔记一(未完)