Objective-C小试牛刀

2024-01-15 18:58
文章标签 objective 小试牛刀

本文主要是介绍Objective-C小试牛刀,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

昨天看了一遍《Learn Objective-C on the Mac》,晦涩难懂。这本书的编码环境实在是过于陈旧,跟我现在用的Xcode4.2差距甚远。边看边写边求索于谷歌、百度。最终,凭着尚有老本的C/C++基础,弄明白这是怎么一回事。
C语言的确是万源之源,只要你还有那么点C的基础,入手Object-C就不算太难。
做个简单的纪录,定义一个人物类,只要求有名字,年龄。
先做个接口定义,要求对成员变量赋值,并且输出结果

#import <Foundation/Foundation.h>

@interface Person : NSObject {
// 是不是可以理解为私有变量,成员变量?那本书里没有这个语法。
@private
NSString *name;
int age;
}
//设置参数方法
//变量类型要放在括号里,很奇特的语法
- (void) setName:(NSString *) nameValue;

- (void) setAge:(int) ageValue;

//打印数据
- (void) print;
@end

做个实现类:

#import "Person.h"

@implementation Person

- (void) setName:(NSString *)nameValue
{
name = nameValue;
}

- (void) setAge:(int)ageValue
{
age = ageValue;
}

- (void) print
{
// 字符串格式化,nil据说就是0,我也不知道该怎么描述它
// 还要用到stringWithFormat,叫做类方法
NSLog([NSString stringWithFormat:@"姓名:%@",name], nil);
NSLog(@"年龄:%d",age);
}
@end


最后,来调用:

#import <Foundation/Foundation.h>
#import "Person.h"

int main (int argc, const char * argv[])
{

@autoreleasepool {
// 实例化Person,这里都是在[]中完成的
// [Person new]意思是向Person发送new指令
Person *person = [Person new];

// 调用setAge方法,冒号后面赋值
[person setAge:29];
// NSString变量初始化时需要用@符号前缀
[person setName:@"Snowolf"];

//调用print方法
[person print];


}
return 0;
}



其结果就是:
[img]http://dl.iteye.com/upload/attachment/604138/d557da8c-912a-3272-b293-adec161e3101.png[/img]
留做纪念,几乎一年没有写代码了,更别说是写这么个新玩意——Object-C。
如何找回自己?先从熟悉的事情做起。。。 :)

这篇关于Objective-C小试牛刀的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/609890

相关文章

MutationObserver小试牛刀

参考文档 https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserver 简介 MutationObserver 接口提供了监视对 DOM 树所做更改的能力。 MutationObserver() 构造函数——是 MutationObserver 接口内容的一部分——创建并返回一个新的观察器,它会在触发指定 DOM 事件时,

Core Text Objective-C Wrapper

Core Text Objective-C Wrapper https://github.com/akosma/CoreTextWrapper Introduction(介绍) One of the most promising and mysterious new frameworks introduced in iOS 3.2 is Core Text. Apple define

Objective-C ,ios,iphone开发基础:JSON解析(使用苹果官方提供的JSON库:NSJSONSerialization)

json和xml的普及个人觉得是为了简化阅读难度,以及减轻网络负荷,json和xml 数据格式在格式化以后都是一种树状结构,可以树藤摸瓜的得到你想要的任何果子。 而不格式化的时候json和xml 又是一个普普通通的字符串,在网络通信的时候也只需要请求一次,而不用每次为得到木一个值而重复的请求服务器或者目标主机, json和xml 都采用 键 - 值 的形式来存放数据。 xml 使用:

Objective-C总Runtime的那点事儿(一)消息机制

最近在找工作,Objective-C中的Runtime是经常被问到的一个问题,几乎是面试大公司必问的一个问题。当然还有一些其他问题也几乎必问,例 如:RunLoop,Block,内存管理等。其他的问题如果有机会我会在其他文章中介绍。本篇文章主要介绍RunTime。 RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪

【Objective-C】07-自定义构造方法和description方法

知识回顾 在第5讲中已经介绍了如何定义类和创建并初始化对象,比如有Student这个类 1.Student.h 1 #import <Foundation/Foundation.h>2 3 @interface Student : NSObject {4 int _age;5 }6 - (void)setAge:(int)age;7 - (int)age;

NodeJs小试牛刀--聊天室搭建

最近研究聊天室功能,准备用nodejs实现。下面是自己的尝试!! nodejs的安装这里就不详细赘述了。 程序创建 引入required模块 var express = require('express');var app = express();var http = require('http').Server(app); 创建监听端口 http.listen(8000, f

收集几个Objective-C的HTML解析库

收集几个Objective-C的HTML解析库 JAN 14 最近在着手开发《掌中站》iOS客户端的HTML解析这一块,老早就选用了Google去年开源的Gumbo,用的OC对Gumbo的一个封装OCGumbo。最近在开发的一个功能点就是想根据OCGumbo里面的各种Query、Find方法写一个自动解析器,解析某一页面的时候只需要读取一个JSON文件,根据JSON里面的操作符号就能在程序

iPhone开发之UITableView的小试牛刀 利用MVC模式从plist文件读取数据并字典转模型的格式实现

新建一个具有simple  VIew的工程,并把相关图片拉进资源文件夹 在Supporting  files文件夹下新建work.plist文件,编辑内容如下图: 在工程下新建model文件夹,并在文件夹内新建model类Hero 根据文件的字典属性编辑Hero.h如下: //// Hero.h// 作业整理//// Created by apple on 15/

Objective-C中是如何实现线程同步的? 网络的同步、异步区别

多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美。这篇文章主要从线程创建与启动、线程的同步与锁、线程的交互、线程池等等四个方面简单的讲解一下iphone中的多线程编程。    一、线程创建与启动    线程创建主要有二种方式:    当然,还有一种比较特殊,就是使用所谓的convenient

Objective-C 委托、非正式协议、正式协议

Objective-C 委托、非正式协议、正式协议 一、概念: 1、委托(delegate,也叫代理):当一个对象接受到某个事件或者通知的时候,会向它的Delegate对象查询它是否能够响应这个事件或者通知,如果可以,这个对象就会给它的Delegate对象发送一个消息(执行一个方法调用)。在这种机制下,您可以不进行子类化和方法重载,而是将自己的定制代码放到委托对象中,从而避免对复杂