Objective-C 初体验

简介:

因为要接SDK的原因,现在搞搞OC,本人是以控制台程序入手学的。

本片主要知识点:

一:创建控制台项目

二:创建类(h文件与m文件分开)

三:类成员的编写,坑啊


1创建控制台项目:

1,打开XCode  , File -》 New -》 Project...

2,在打开的界面中如下操作:

wKiom1mxIrDgZicbAAG2fqwD95w818.png-wh_50

wKioL1mxIp6g7HnrAADRq7vL_8w991.png-wh_50

3,选择项目的保存位置。。。



2,新建类(h文件和m文件)

1,File-》New -》File...

2,进入创建界面后如下操作(这样会生成h文件和m文件):

wKioL1mxJEDj2OlFAAFOwNn2vCY910.png-wh_50

wKioL1mxJEyQbU6DAACZV3pcweg842.png-wh_50

3,选择文件保存的位置。。。。。


代码:

Aonaufly.h如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//
//  Aonaufly.h
//  Ainy_Console
//
//  Created by Apple on 2017/9/7.
//  Copyright  2017年 Apple. All rights reserved.
//
 
#import <Foundation/Foundation.h>
 
@interface Aonaufly : NSObject
@property  int  _a , _b;
-( int ) sum_one : (  int ) c sum_b : ( int ) d; //带参数名的方法
-( int ) sum :( int ) i : ( int ) j; //不带参数名的方法
@end


Aonaufly.m代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//
//  Aonaufly.m
//  Ainy_Console
//
//  Created by Apple on 2017/9/7.
//  Copyright  2017年 Apple. All rights reserved.
//
 
#import "Aonaufly.h"
 
@implementation Aonaufly
@synthesize _a , _b;
-( int ) sum_one:( int )c sum_b:( int ) d
{
     return  [self sum:c :d]; //调用本类的方法sum
}
-( int ) sum:( int )i :( int )j
{
     return  i + j;
}
@end


入口main调用如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//
//  main.m
//  Ainy_Console
//
//  Created by Apple on 2017/9/6.
//  Copyright  2017年 Apple. All rights reserved.
//
#import "Aonaufly.h"
int  main( int  argc,  const  char  * argv[]) {
     @autoreleasepool {
         Aonaufly *myAonaufly;
         myAonaufly = [[Aonaufly alloc] init];
         int  sum = [ myAonaufly sum_one:1 sum_b:2]; //调用方法(带参数)
         NSLog(@ "this is 1 + 2 SUM : %i"  , sum);
         
         //为属性 _a , _b 赋值
         myAonaufly._a = 3;
         myAonaufly._b = 5;
         
         //调用不带参数名的sum方法如下
         sum = [myAonaufly sum:myAonaufly._a :myAonaufly._b];
         NSLog(@ " this %i + %i value is  : %i "  , myAonaufly._a , myAonaufly._b , sum);
     }
     return  0;
}


结果:

wKiom1mxJgLSrshPAABOVXmmUf4525.png-wh_50



解析如下:

1,头文件 @property 实际声明的是seter 和 geter , 在m文件中直接用@synthesize直接实现

2,关于方法-》

-(int) 定义的是返回值类型

sum_one : ( int) c sum_b : (int) d;的调用方式 [ myAonaufly sum_one:1 sum_b:2]

sum :(int) i : (int) j; 的调用方式 [myAonaufly sum:myAonaufly._a :myAonaufly._b]


很坑 ,独树一帜和很多主流编程语言都不一样。。。。


















本文转自Aonaufly51CTO博客,原文链接: http://blog.51cto.com/aonaufly/1963502,如需转载请自行联系原作者







相关文章
|
9月前
|
存储 人工智能 缓存
DiffSplat:输入文本或图像,2秒内生成3D建模!北大联合字节开源3D建模生成框架
DiffSplat 是由北京大学和字节跳动联合推出的一个高效 3D 生成框架,能够在 1-2 秒内从文本提示或单视图图像生成高质量的 3D 高斯点阵,并确保多视图下的一致性。
530 19
DiffSplat:输入文本或图像,2秒内生成3D建模!北大联合字节开源3D建模生成框架
|
5月前
|
消息中间件 监控 关系型数据库
覆盖迁移工具选型、增量同步策略与数据一致性校验
本文深入解析数据迁移核心挑战,涵盖工具选型、增量同步优化与一致性校验三大关键环节,结合实战案例与代码方案,助开发者规避风险,实现高效可靠迁移。
245 0
|
11月前
|
存储 关系型数据库 MySQL
【MYSQL】 ——索引(B树B+树)、设计栈
索引的特点,使用场景,操作,底层结构,B树B+树,MYSQL设计栈
|
缓存 关系型数据库 数据库
PostgreSQL的性能
PostgreSQL的性能
580 2
|
SQL 关系型数据库 数据库
C语言与数据库:使用C语言操作SQLite等数据库。
C语言与数据库:使用C语言操作SQLite等数据库。
|
机器学习/深度学习 自然语言处理 算法
Adam优化算法和应用场景
Adam(Adaptive Moment Estimation)是一种用于训练深度学习模型的优化算法
804 2
|
JavaScript 前端开发 编译器
【TypeScript技术专栏】深入理解TypeScript编译过程
【4月更文挑战第30天】TypeScript编译过程包括解析、类型检查、语义分析和代码生成四个步骤。解析阶段将源代码转为AST;类型检查确保代码符合类型规则,捕获类型错误;语义分析检查代码逻辑一致性;最后生成JavaScript代码。这一过程保证了代码的语法、类型和语义正确性,提升开发效率和代码质量。了解此过程有助于开发者更好地理解和解决问题。
342 0
|
SQL 数据库连接 数据库
C# | 将DataGridView中的数据保存到Accesss数据库
要将WinForm的DataGridView中的数据保存到Access数据库,可以按照本文的步骤进行。 在Visual Studio中,打开项目,右键单击“引用”文件夹,选择“添加引用”,在“COM”选项卡中找到并选中“Microsoft Office 14.0 Access Database Engine Object Library”,然后单击“确定”按钮。
600 0
C# | 将DataGridView中的数据保存到Accesss数据库
|
存储 缓存 Java
Java内存缓存-通过Map定制简单缓存
缓存 在程序中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求此数据时,速度要比访问数据的主存储位置快。通过缓存,可以高效地重用之前检索或计算的数据。 为什么要用缓存 场景 在Java应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中,相对从数据库中读取,读缓存效率会有很大提升。
2063 0
|
机器学习/深度学习 计算机视觉
【计算机视觉 | 目标检测】Open-Vocabulary Object Detection Using Captions
出发点是制定一种更加通用的目标检测问题,目的是借助于大量的image-caption数据来覆盖更多的object concept,使得object detection不再受限于带标注数据的少数类别,从而实现更加泛化的object detection,识别出更多novel的物体类别。