Objective-C再学习之基础知识(一)

       古人云:“温故而知新”,而今信息高度膨胀,技术日新月异,对于一个苦逼的程序员来说,这既是一件欢欣雀跃的时刻,因为有那么多激动人心的技术呈现出来梦想的轮廓;另一方面确实无尽的苦楚,革新的如此之快,快马加鞭也难以赶上啊。闲话少说,下来一段时间里,我将会从基础开始来复习Objective-C语言,以及IOS开发中的点点滴滴。希望能够有质的飞跃。
       首先,我们知道伟大的C语言,几乎是每个程序员接触的第一门编程语言,但是它没有面向对象;而Objective-C则是ANSI-C 的一个严格超集,是具有面向对象特性的。“长江后浪推前浪啊”!
    由于这是复习,代码的记录可能会多点,有些需要注意的过程会做记录,若文中有误,敬请批评和指正。
     学过JAVA的人都知道类的概念,那么如何在Objective-C这门语言中使用类来为我们服务呢。
    首先我们定义一个类,命名为  MyClass
     在Objective-C的语言坏境Xcode中,已经为我们创建了两个文件.h文件和.m文件,他们分别是声名类的属性和方法的头文件、  实现类的方法的实现文件。
 MyClass类的声名文件:
 
#import <Foundation/Foundation.h>
 
 @interface  MyClass : NSObject {
     //这里可以定义类的属性    
}

//声明一个实例方法,必须本类new过之后才能调用,实例方法前的标识使用 - 号
- (void)initClass : (NSString *)str;
//声明一个类方法,类方法无权访问实例变量,方法前的标识使用 + 号
//这里声明一个静态类方法,无需new过也可以调用
+ (void) staticInitClass : (NSString *) str;

@end


下来我们看类的实现文件:

#import  "MyClass.h"

@implementation MyClass

- (void) initClass :(NSString *)str{
    NSLog(@"实例方法输出:%@",str);
}

+ (void) staticInitClass : (NSString *)str{
    NSLog(@"静态方法输出:%@",str);
}

@end



      这样我们自定义的类就算完成了,当然这只是很简单的一个说明性的例子,真是项目中可能比这个要复杂好几倍,这里只是说明问题。下来我们就需要使用这个类的属性和方法了,打开我们的ViewCntroller类的声明文件:
#import <UIKit/UIKit.h>

@interface  MainViewController : UIViewController{
}
- (void) initString : (NSString *)str;

@end

下来就是具体的使用:


//MainViewController.h
//Objective-cBase
//
//Creat by Evolution.cc  0n 12-8-29
//Copyright 2012年 Evolution.cc. All rights reserved.

#import "MainViewController.h"
#import "MyClass.h" //导入我们新写的类

@implementation  MainViewController

......省略部分不需要动的代码
-(void) viewDidLoad{
    [super viewDidLoad];
    //首先我们打印一个字符串
    NSLog(@"Only print Log Title");
 //字符串相加
    NSString *str;
    NSString *str1 = @"plusA ";
    NSString *str2 = @"+";
    NSString *str3 = @"plusB";
    // 把str1 str2 str3 相加后赋值给str %@ 表示是一个对象 这里也可以用 %d  %s 在这里就不一一举例了。
    str = [NSString stringWithFormat:@"%@ %@ %@",str1,str2,str3];
    //打印出str
    NSLog(@"string plus %@",str);
    //self 好比C++ 或者 java 语言中的 this 指针 指向本类 这里调用了本类的 putString方法 将字符串"pass string"作为参数传递了进去
    [self putString:@"pass string"];
    //在内存中new了一个MyClass的对象  alloc是在内存中 分配内存  init 则是初始化 这样写 属于规定写法
    MyClass * myclass = [[MyClass alloc] init];
    // 用myclass指针调用 类中putclass方法 将字符串 "pass class string"作为参数传递进去
    [myclass putclass:@"pass class string"];
    //调用类中静态方法 将字符串"static pass class string "作为参数传递进去
   [MyClass staticPutClass:@"static pass class string"];
}
 
- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}
 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
 
//自己写的类方法输出字符串
-(void)initString:(NSString *)str
{
    NSLog(@"%@",str);
}
 
@end


  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值