黑马程序员-IOS开发基础班之Objective-C第一天学习笔记

黑马iOS入学面试知识点全总结 黑马iOS往期学员,知识点全总结,C 、OC、Foundation,内部绝密资料,现偷偷放出,全靠它才能轻轻松松 进入黑马!有了它我保证你成功录取! 立即下载

#import指令

  1. 以#号开头,是一个预处理指令
  2. 作用:是#include指令的增强版,将文件的内容在预编译的时候拷贝写指令的地方
  3. 增强:同一个文件无论#import多少次,只会包含一次
  4. 简要原理:#import指令在包含文件的时候,底层会先判断这个文件是否被包含,如果被包含会略过,否则才会包含

框架

  1. 是一个功能集,苹果或者第三方事先将一些程序在开发程序的时候经常要用到的功能事先写好,把这些功能封装在一个一个的类或者函数中,这些函数和类的集合叫做框架,类似于C语言的函数库
  2. Foundation框架:这个框架中提供了一些最基础的功能,输入和输出,基本的数据类型
#import <Foundation/Foundation.h>

自动释放池

@autoreleasepool 自动释放池。可以将代码写在自动释放池中,或者干脆把这个自动释放池删除,不会有任何的影响。

NSLog函数

  1. 作用:是printf函数的增强版,向控制台输出信息
  2. 语法:NSLog(@"格式控制字符串",变量列表);
    最简单的语法:NSLog(@"要输出的信息");
  3. 增强:输出一些调试相关信息:执行这段代码的时间,程序的名称,进程编号,线程编号;会自动换行,在输出完信息之后,自动换行;NSLog函数不仅可以输出C数据类型变量的值,还可以输出OC新增的数据类型变量的值
  4. 用法:和printf函数差不多,一样可以输出变量的值,并且占位符和用法都一样
  5. 使用注意事项:1.NSLog函数的第一个参数前面必须要加一个@符号。2.如果在字符串的末尾添加了换行符,那么函数的自动换行功能就会失效

NSString

OC中专门用来存储字符的一个类型。NSString类型的指针变量,专门用来存储OC字符串的地址

OC的字符串常量必须要使用一个前缀@符号。@“jack”是一个OC的字符串常量。如果没有@前缀就是一个C的字符串。

NSString类型的指针变量,只能存储OC字符串的地址。

NSString *str = @"jack";

如果要使用NSLog函数输出OC字符串的值,那么使用占位符%@

注释

和C语言的注释一摸一样,//与/**/

函数的定义和调用

和C语言函数的定义和调用一摸一样

OC程序的编译,链接,执行

  1. 在.m文件中写上符合OC语法规范的源代码
  2. 使用编译器将源代码编译为目标文件 cc -c xx.m 
  3. 链接:cc xx.o 如果程序中使用到了框架中的函数或者类,那么在链接的时候,就必须要告诉编译器取那个框架中找这个函数或者类
    cc xx.o -framework 框架名称
  4. 链接成功以后,就会生成一个a.out文件,执行就可以了
  5. 源文件 .m  目标文件 .o  可执行文件 .out

数据类型

  1. OC中支持C语言中的所有的数据类型
  2. BOOL类型:可以存储YES或者NO中的任意一个数据;一般情况下用来存储条件表达式的结果;BOOL类型的本质,有符号的char变量 typedef signed char BOOL;
  3. Boolean类型:可以存储true或者false中的任意一个数据;一般情况下用来存储条件表达式的结果;Boolean类型的本质,无符号的char变量 typedef unsigned char Boolean;
  4. class类型:类
  5. id类型:万能指针
  6. nil 与 NULL差不多
  7. SEL 方法选择器
  8. block 代码段
  9. OC支持C语言中的所有的运算符
  10. CO支持C语言中的所有的控制语句
  11. OC支持C语言中的所有的关键字,并且效果一致

OC语言完全兼容C语言,在OC中可以写任意的C代码,并且效果一致

如何定义类

定义类的语法

//类的声明
@inteface 类名 : NSObject {
    //这类事物具有的共同的特征,将他们定义为变量
}
//方法的声明
@end

//类的实现
@implementation 类名
//方法的实现
@end

@inteface Person : NSObject {
    NSString *_name;
    int _age;
    float _height;
}

@end

@implementation Person

@end

//创建一个Person类的对象
//对象名为p1
Person *p1 = [Person new];
  • 类必须要有声明和实现
  • 类名用你描述的事物的名称来命名就可以,类名的每一个单词的首字母必须大写
  • 用于表示这类事物的共同特征的变量必须要定义在@interface的大括弧之中,称之为属性或者成员变量,实例变量,字段......
  • 为类定义属性的时候,属性的名称必须要以_下划线开头

如何使用对象

  1. 默认情况下,对象的属性是不允许被外界直接访问的,如果允许对象的属性可以被外界访问,那么就在声明属性之前加一个@public关键字
  2. 访问对象的属性的方式:对象名->属性值 = 值;对象名->属性值;(*对象名).属性名;
@inteface Person : NSObject {
    @public:
    NSString *_name;
    int _age;
    float _height;
}
//定义无参数的函数
- (void)run;

@end

@implementation Person
//实现无参数的函数
- (void)run {
    NSLog(@"我正在跑步");
}

@end

Person *p1 = [Person new];
p1->_name = @"jack";
p1->_age = 19;
p1->_height = 19.19f;

(*p1)._name = @"jack";
(*p1)._age = 19;
(*p1)._height = 19.19f;

无参数的方法的声明与实现

  1. 声明:在@interface的大括弧的外面 -(返回值类型) 方法名称; 
  2. 实现:在@implementation之中实现
  3. 调用:[对象名 方法名];
@inteface Person : NSObject {
    @public:
    NSString *_name;
    int _age;
    float _height;
}
//定义无参数的函数
- (void)run;

@end

@implementation Person
//实现无参数的函数
- (void)run {
    NSLog(@"我正在跑步");
}

@end

带一个参数的方法

  1. 声明:在@interface的大括弧的外面 -(返回值类型) 方法名称:(参数类型)形参名称;
  2. 实现:在@implementation之中实现
  3. 调用:[对象名 方法名];
@inteface Person : NSObject {
    @public:
    NSString *_name;
    int _age;
    float _height;
}
//定义无参数的函数
- (void)run;
//定义带一个参数的函数
//函数名称叫eat: 参数类型 NSString *类型 参数名字叫做foodName
- (void)eat:(NSString *)foodName;
@end

@implementation Person
//实现无参数的函数
- (void)run {
    NSLog(@"我正在跑步");
}
- (void)eat:(NSString *) foodName {
    NSLog(@"%@真好吃.", foodName);
}
@end

[p1 eat:@"红烧排骨"];

带多个参数的方法

  1. 声明:在@interface的大括弧的外面 -(返回值类型) 方法名称:(参数类型)形参名称1 : (参数类型)形参名称2 : (参数类型)形参名称3;
  2. 实现:在@implementation之中实现
  3. 调用:[对象名 方法名];
@inteface Person : NSObject {
    @public:
    NSString *_name;
    int _age;
    float _height;
}
//定义无参数的函数
- (void)run;
//定义带一个参数的函数
//函数名称叫eat: 参数类型 NSString *类型 参数名字叫做foodName
- (void)eat:(NSString *)foodName;
//定义带多个参数的函数
- (int)sum:(int)num1 :(int)num2;
@end

@implementation Person
//实现无参数的函数
- (void)run {
    NSLog(@"我正在跑步");
}
//实现带一个参数的函数
- (void)eat:(NSString *) foodName {
    NSLog(@"%@真好吃.", foodName);
}
//实现带多个参数的函数
- (int)sum:(int)num1 :(int)num2 {
    return num1 + num2;
}
@end

[p1 sum:1 :2];

SFM(structure from motion 从运动恢复结构)和MVS(multi-view stereo 多视图立体视觉) 主要目的:SFM是重建稀疏点云的,MVS重建的是稠密点云。 输入的数据:SFM是没有标定的数据,而MVS输入的是标定的数据。 为什么SFM无法重建出稠密的点云,但是MVS可以? SFM中我们用来做重建的点是由特征匹配提供的!这些匹配点天生不密集!MVS则几乎对照片中的每个像素点都进行匹配,几乎重建每一个像素点的三维坐标,这样得到的点的密集程度可以较接近图像为我们展示出的清晰度。 SFM和MVS关系 SFM给MVS算好了输入视角的位姿,内参,稀疏点云以及它们的共视关系,MVS再利用这些信息以及彩色图 阅读详情

相关推荐

Windows系统的Mamba环境配置详细教程(状态空间模型)

causal_conv1d也是安装mamba的依赖必须库。安装完成后,通过pip list可以查看到安装的库。Triton是安装mamba的依赖,需要先安装。上述工作准备好后,按下面步骤安装。直接根据离线文件安装即可。是自己的虚拟环境名字。

2301_77831163的博客 3676

黑马程序员——iOS核心基础(7-8天)

C语言基础7-8天。知识点回顾、初识数组与排序。

微信取证不求人:最新免费DAT解码工具使用指南(含闪退解决方案)

本文提供了一份详细的微信DAT文件免费解码工具使用指南。针对用户常见的图片无法查看问题,手把手教学如何安全获取并操作开源图形化工具,将加密的DAT文件一键还原为JPG/PNG图片。文章重点剖析了DAT文件的加密原理,并给出了详细的步骤解决工具运行中最常见的“程序闪退”等疑难杂症,帮助普通用户轻松完成微信取证。

m0n1o2p的博客 479

黑马OC听课笔记(第一天)

视频链接:iOS开发基础班+就业班(100天完整版)之基础班2:Objective-C学习(10天) 本OC教程学习路线图 Objective-C概述 OC介绍及发展背景 Objective-C简称Obj-C或者OC,关于OC的更多内容可以参见百度百科的介绍:Objective-C OC对比C语言的差异化 <1>在C的基础上增加了面向对象的语法; <2>将C中复杂繁琐的内容进行了很好地封装,更便于开发人员编码; <3>OC完全兼容C语言,但在C中不能编写O

科科然的博客 645

Understanding Lockup Cells

工具会分析扫描链和EDT逻辑之间的控制时序元素的时钟的时序关系,当必须要同步时钟并保持数据完整性时插入边沿触发寄存器(lockup cells)。可以使用report_edt_lockup_cells命令来展示工具已经插入的lockup cells的详细报告。

weixin_44954910的博客 1080

【NLG】(六)文本生成评价指标—— ROUGE原理及代码示例

前奏: 【NLG】(一)文本生成评价指标——BLEU原理及代码示例 【NLG】(二)文本生成评价指标—— METEOR原理及代码示例 【NLG】(三)文本生成评价指标—— ENTROPY原理及代码示例 【NLG】(四)文本生成评价指标—— diversity原理及代码示例 【NLG】(五)文本生成评价指标—— kl_divergence原理及代码示例 1.ROUGE原理 2.优缺点 3.如何算ROUGE ...

凝眸伏笔的博客 1万+

黑马程序员-IOS学习笔记(一)Objective-C概述

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!------- Objective-C概述: 一、面向对象简介:   面向对象程序设计(英语:Object-oriented programming,缩写:OOP),指一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的集合。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵

JamesLucky5的博客 601

搞懂 ABAP 里的 Language Settings:登录语言、文本环境语言与 sy-langu 的真实含义

SAP系统中语言设置并非单一字段决定,而是由登录语言(logon language)和文本环境语言(text environment language)共同控制。登录语言在会话期间固定,而文本环境语言可通过SET LOCALE语句修改,影响文本处理、排序、异常显示等行为。开发中需区分两者:使用CL_ABAP_SYST方法获取登录语言,通过sy-langu或GET LOCALE获取当前文本环境语言。语言环境切换应谨慎处理并尽快恢复,避免影响会话中其他程序。在多语言场景下,正确处理语言设置对确保文本相关功能正常

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1307

iOS开发Objective-C学习笔记

objective-c

goodgoodstudy___的博客 255

基于CST的PCB通孔三维建模实例

本文简明扼要地描述了如何利用CST的参数化脚本快速生成PCB的通孔三维模型,非常适合于进行快速精准的PCB参数分析。

一只豌豆象的博客 1834

嵌入式内存管理之“LittleFS文件系统”开发(附LittleFS项目源码)

本文介绍了如何在嵌入式系统中实现 LittleFS 文件系统,并结合 Flash 存储进行数据管理。通过详细的代码示例,展示了如何配置、挂载 LittleFS 文件系统,并进行文件操作,如读取、写入和更新数据。特别地,博客通过实际应用演示了如何实现启动计数功能,以及如何处理文件系统的格式化和挂载过程。该示例帮助读者掌握在资源受限的嵌入式环境中实现高效文件存储管理的关键技术。

Bit_Dong的博客 3185

[备忘】黑马 IOS 2013年就业班+基础班(第二期)视频下载

基础班: 黑马程序员_IOS开发基础教程PPT - 2015-07-12 21:59 0723_IOS概述与简介 - 2015-07-12 21:59 0813_打砖块.zip 1.24G 2015-07-12 22:00 0812_Foundation.zip 1.26G 2015-07-12 22:00 0811_内存管理_2.zip 1.86G 2015-0

javateshuyufa的博客 431

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【黑马程序员】iOS学习之路——Objective-C之概述

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、Objective-C的简介 1.C语言的基础上,增加了一层最小的面向对象语法 2.完全兼容C语言 3.可以在Objective-C代码中混入C语言代码,甚至是C++代码 4.可以使用Objective-C开发Mac OS X平台和iOS平台的应用程序 二、Objecti

Kuailets_123的个人博客 566

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

黑马程序员——iOS核心基础(17-18天)-黑马程序员-专题视频课程

C语言基础17-18天。其中包括OC类和对象创建、类方法和Xcode

heima_cxy的博客 292

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

黑马程序员——iOS核心基础(15-16天)-黑马程序员-专题视频课程

C语言基础15-16天。其中包括通讯录项目实战。

heima_cxy的博客 317

黑马程序员(自学IOS视频后的感受)

------http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------       今天总算看完IOS基础视频了,从同学建议我去培训IOS之后,我就在传智播客官网上下载了IOS视频,从当初只知道有苹果这么个名词到现在也已经知道苹果了以及和苹果相关的一些知识,也增长了我一些苹果知识的了

ixx__123的专栏 1250

黑马程序员——Objective-C 第一天课程学习总结

Objective-C第一天课程学习总结 ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.OC简介 1. 1OC语言是在C语言的基础上增加了一层最基本的面向对象的语法 1.2 OC完全兼容C语言 1.3 可以在OC代码嵌入C语言代码,甚至是C++代码 1.4可以使用OC开发Mac OSX平台和iOS平台的应用程

darewolf 的专栏 1228

黑马程序员——iOS核心基础(13-14天)-黑马程序员-专题视频课程

C语言基础13-14天。其中包括预处理与结构体。

heima_cxy的博客 247

黑马程序员——Objective-C——简介

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Objective-C简介 Objective-C:一种简单的计算机编程语言,是在c语言的基础上增加了一些面向对象的语法,使它可以支持真正的面向对象编程。 Objective-C:提供类的定义、方法、属性等语法,还有可以提高类的动态扩展能力的结构等,它扩展了标准的ANSI C语

webPackages的专栏 638

黑马程序员-iOS基础-Objective-C基础(四)OC开发技巧及核心语法(上)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------  黑马程序员-iOS基础-Objective-C基础(四) OC开发技巧及核心语法上  一、开发技巧 1、NSString OC字符串也是一个对象,继承自NSString类 如: NSString *_name; @"daflkg;gagr" 创建NSString字符串

deng0512的专栏 1060

黑马程序员——Objective-C介绍

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.历史        Cocoa和Objective-C是苹果公司OS X和iOS操作系统的核心。虽然OS X(尤其是iOS)出现的时间相对较晚,但Objective-C和Cocoa的推出则已有时日。早在20世纪80年代初,Brad Cox为了融合流行的、可以移植的C语言和优雅的Sma

Anne_lov的博客 1142

黑马程序员 Objective-C入门

——- android培训、java培训、ios培训期待与您交流!一、Objective-C基础1.什么Objective-CObjective-C是C语言的一个扩展集。Objective-C是以C语言为基础,在语言中添加了一些微妙但意义重大的特性。 2.第一个Objective-C程序 #import <Foundation/Foundation.h> int main()

千江有水千江月,万里无云万里天。 836

黑马程序员-IOS开发基础班之Objective-C第二天学习笔记

【代码】黑马程序员-IOS开发基础班之Objective-C第二天学习笔记。

Ls_attack的博客 1408

黑马程序员-iOS基础-Objective-C基础(七)block和protocol

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 黑马程序员-iOS基础-Objective-C基础(七)block和protocol 一、block block是一种数据类型,苹果官方推荐使用,效率高 block用来保存一段代码,标志是^ block跟函数很像  1.可以保存代码  2.有返回值  3.有形参 如何定义Blo

deng0512的专栏 557

黑马程序员——Objective-c学习笔记——类(面向对象)——黑马 ios 技术博客

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Objective-c学习笔记02——类(面向对象)01 Objective-C可以开发apple家族系列产品的软件,这里记录成笔记方便日后复习: Objective-c学习笔记01——简介 Objective-c学习笔记02——类(面向对象)

黑马程序员杜梦秋的技术博客专栏 1076
上一篇: 牛客-数组、字符串及数据批量存储 2022.10.8
下一篇: 牛客-函数与递归 2022.10.9
Ls_attack
博客等级 码龄10年 25粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值