文档章节

第01天OC语言(08):第一个OC方法2

lyh2017iOS
 lyh2017iOS
发布于 2017/07/10 00:52
字数 581
阅读 1
收藏 0

#####二、代码

#import <Foundation/Foundation.h>
#pragma mark 类

@interface IPhone : NSObject
{
@public
    float _model;    // 型号
    int _cpu;        // cpu
    double _size;    // 尺寸
    int _color;      // 颜色
}

-(void)about;

/*
 C语言的函数 :
 没有返回值没有参数的
 没有返回值参数的
 有返回值没有参数的
 有返回值有参数的
 
 OC的方法 :
 没有返回值没有参数的  - (void)text1;
 没有返回值参数的     - (void)text2WithNumber:(int)number;
 有返回值没有参数的   - (int)text3WithNumber;
 有返回值有参数的     - (int)text2WithNumber:(int)number andNumber2:(int)number2; // 多个参数
 */
//  有返回值没有参数的, 读取短信
-(char *)loadMessage;
// 有返回值有参数的, 打电话
//int signal(int number)
//call
// 注意 : OC中的方法如果有参数, 那么每个参数的数据类型前面添加上一个 :
// 注意 : 当前这个有参数的方法 他的方法名称 是 signal :
//          冒号也是方法名称的一部分
-(int) signal:(int)number;

// 有返回值并且多个参数的,发短信
// sendMessage(int number, char *content)
// 下面这个方法名称是 sendMessage::
//- (int)sendMessage:(int)number :(char *)content;
// 为了提高我们的阅读性, OC方法允许我们 给方法给每个参数添加一个表情,说明当前参数的含义
// 注意 : 标签也是方法名的一部分
// 方法名 是 sendMessageWithNumber:andContent:
- (int)sendMessageWithNumber:(int)number andContent:(char *)content;
@end


#pragma mark 实现

@implementation IPhone
// 行为的实现
-(void)about
{
//    NSLog(@"打印本机信息\n");
    // 如果在对象方法里面 想访问该对象的属性, 可以直接写上 _属性名称即可
    NSLog(@"型号 = %f cpu = %i,尺寸 = %f, 颜色 =%i",_model,_cpu,_size,_color);
}

-(char *)loadMessage
{
    char *content = "老婆我们家我做主";
    return "lyh is cool";
}
-(int) signal:(int)number
{
    NSLog(@"打电话 %i",number);
    return 1;
}
/*
- (int)sendMessage:(int)number :(char *)content
{
    NSLog(@"发短息 %i, 内容: %s",number,content);
    return 1;
}
 */
- (int)sendMessageWithNumber:(int)number andContent:(char *)content
{
    NSLog(@"发短息 %i, 内容: %s",number,content);
    return 1;
}
@end


#pragma mark main函数
int main(int argc, const char * argv[])
{
    IPhone *p = [IPhone new];
    p->_model = 4;
    p->_size = 3.5;
    p->_color = 0;
    p->_cpu = 1;
    
#warning 注意 : OC中的NSLog 对C语言的字符串支持不是很好,如果返回的是 中文的C语言字符串 可能输出的是乱码, 也有可能什么都不输出
    [p about];
    char *content = [p loadMessage];
    NSLog(@"content %s",content);
    
    [p signal:10010];
//    [p sendMessage:10010 :"fuck"];
    [p sendMessageWithNumber:10010 andContent:"hehe"];
    return 0;
}

输入图片说明

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 357
码字总数 137380
作品 0
朝阳
Native code support (Native Code(C和C++)支持)

1. WP 8和Win 8之间共享native代码 通过 Windows 运行时组件,可以在 Windows 应用商店和 Windows Phone 应用程序之间共享Native coad。由于windows phone 8和Windows 8没有共享所有的Windo...

失足处男的倒霉孩子
2013/12/26
779
0
Swift4.0基础知识回顾

简单介绍一下Swift Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序,Swift语言让应用开发更简单、更快、更稳定,确保最终应用有着更好的质量更多了解Swift可以去《The...

博行天下
2017/12/06
0
0
Swift2.0与OC混编实验--动态库(一)

完整的Demo下载 做了以下几个实验 验证Swift和OC的项目可以使用任意语言开发的动态库 1、创建了一个Swift语言的动态库 2、创建了一个OC语言的动态库 3、创建了一个SwiftApp项目,在项目中同时...

泊竹
2016/01/17
434
0
Object-C基础-02-第一个OC的类

一、语法简介 1.类 在Java中,我们用1个.java文件就可以描述清楚一个类;在OC中,一般用2个文件来描述一个类: 1> .h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interfac...

Corwien
2016/03/17
22
0
Swift编程权威指南第2版 读后收获

  自从参加工作一直在用OC做iOS开发。在2015年的时候苹果刚推出swift1.0不久,当时毕竟是新推出的语言,大家也都很有激情的学习。不过在学完后发现很难在实际项目中使用,再加上当时公司项...

滴水微澜
08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

阿里云API网关使用教程

API 网关(API Gateway)提供高性能、高可用的 API 托管服务,帮助用户对外开放其部署在 ECS、容器服务等阿里云产品上的应用,提供完整的 API 发布、管理、维护生命周期管理。用户只需进行简...

mcy0425
33分钟前
4
0
解决远程登陆误按ctrl+s锁屏假死恢复

使用putty时,偶尔发生屏幕假死,不能输入等情况。 后来发现,只要数据ctrl+s,就会假死;输入ctrl+q就可以恢复过来。 很多刚从windows转移到linux上来工作的朋友,在用vi/vim编辑文件时,常常...

HJCui
37分钟前
0
0
@Transactional

事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于...

asdf08442a
41分钟前
2
0
widows下强制解除8080端口占用问题

使用win+R打开命令窗口 输入以下命令查看哪个任务占用了8080端口 netstat -ano |findstr "8080" 然后通过任务id强制关闭占用该端口的进程 tskill 10044 // 自己的试情况而定,这个ID是LISTE...

_Artisan
50分钟前
2
0
productFlavors简单实用

最近项目中,不同环境需要配置的参数越来越多,为了减少修改代码次数。研究了一下productFlavors的使用方式,总结如下 1. as3.0以上版本使用productFlavors时需要指定一个flavorDimensions,...

火云
52分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部