IOS开发学习笔记(一)——ObjectC语言快速入门

Object-C一日速成——环境搭建 要我说,想要学习一门语言,搭建好相关的环境可以达到事半功倍的效果,那么今天我们就来聊一聊关于在windows系统上搭建Object-C语言编程环境的那些事。 文章目录一、基于CodeBlocks的Object-C编程环境搭建1.1 CodeBlocks?那个只会写C语言HelloWorld小白才用的软件?1.2 CodeBlocks能运行Object-C程序?1.3 CodeBlocks搭建O... 阅读详情

需要学习IOS开发,首先需要掌握的是ObjectC语言。由于我之前接触过多年的C/C++和Java,所以很多地方我只需要理解ObjectC和他们的不同即可。当然为了能够系统的学习,建议您还是仔细学习一遍ObjectC语言,我这里并不会讲述太多原理方面的内容,只会尽量将实际编码中需要注意的内容列出:

  1. 基本的关键字,类似于for/case/switch等等,大家都是差不多的;
  2. “@”标识符标识与标准C有区别的关键字,"[]"标识方法调用;
  3. import关键字取代了include,这样可以不需要很多的#ifdef宏定义;
  4. @autoreleasepool标识一个自动释放池,这样我们alloc出的对象无需我们自己release;
  5. 简单数据类型类似与int等在ObjectC中继续存在,只不过BOOL是大写,并且取值是YES/NO;
  6. 所有的对象类型变量定义都使用C中的指针类型定义法,例如:NSString *str,但是注意我们的变量指向的是内容,但是不能对指针进行操作;
  7. 和大部分的C系列语言不同,我们不是使用object.method()这样的方法来调用方法,而是使用[object method]方法;
  8. 如果方法返回值,那么我们使用result = [result method]的形式;
  9. 如果方法包含参数,那么我们使用result = [result method:arg1, arg2name: arg2value]的形式,其中arg2name是参数名(或者可以认为是形参),arg2value是参数值(可以认为是实参),Apple给的说法是这样代码更易读,但是对于我来说真是一点都不习惯,当然我们也可以使用C++或者Java的那种方法,但这种方法Apple不推荐。。。;
  10. 大部分创建对象(构造方法调用)使用如下形式:NSDate *date = [[NSDate alloc] init]的形式,其中alloc负责分配地址,init负责初始化;
  11. 关于Automatic Reference Counting(ARC):ARC是IOS 5中增加的能力,这是一个非常强大的能力,这样我们可以在初始化对象后不用再去关心对象释放的问题(和Java相似的垃圾回收机制,只不过是在编译器中添加代码实现,不是直接在源代码中添加),以前我们给对象分配内容并且使用结束后需要调用[object release]来释放空间,防止内存泄露(memory leaking),注意需要在工程建立时选择这个选项;
  12. 对于方法来说,如果是"+"标记的,表示是static方法;如果是"-"标记的,表示是实例方法(非静态方法);
  13. 对于类来说,有interface表示类的接口(类似于C中的头文件),implementation表示类的实现(类似于C中的C文件);
  14. 对于类和方法的定义,我们经常看到的是:
    #import <Foundation/Foundation.h>
    
    @interface MyData : NSObject
    
    -(void)doNothing;
    
    @end
    
    #import "MyData.h"
    
    @implementation MyData
    
    -(void)doNothing {
        
    }
    @end

  15. 对属性的定义:
    #import <Foundation/Foundation.h>
    
    @interface MyData : NSObject
    
    @property int myId;
    // nonatomic非原子性访问,不加同步,多线程并发访问会提高性能。
    // strong相当于是一个深拷贝的操作
    @property (nonatomic, strong)NSString *name;
    
    
    -(void)doNothing;
    
    @end

    #import "MyData.h"
    
    @implementation MyData
    
    -(void)doNothing {
        _name = [[NSString alloc] initWithFormat:@"aaa"];
    }
    @end

    注意以上的_name属性需要这样使用。如果你需要使用方法你可以直接[self setName:xxxx]。

  16. 以上是基本的语法,后续可能会继续补充。




总体来说,ObjectC对于有C/C++/Java开发经验的程序员(like me)来说,学习的曲线远比C/C++到Java大,而且我认为ObjectC也不是我期待的那样简单和美好,Anyway,存在即是合理,更何况我们需要用来实现自己的梦想,Let's go to the next!

学习 Object-C入门教程 本书简明概要的介绍的object-c的特点。 例子具有代表性。 目录列表如下: 第 1 章,也就是本章 第 2 章,从 Hello,World!开始 第 3 章,类的声明和定义 第 4 章,继承 第 5 章,Class 类型,选择器 Selector 以及函数指针 第 6 章,NSObject 的奥秘 第 7 章,对象的初始化以及实例变量的作用域 第 8 章,类方法以及私有方法 第 9 章,内存管理 第 10 章,到目前为止出现的内存泄漏事件 第 11 章,字符串,数组以及字典 第 12 章,属性 第 13 章,类目(Categories) 第 14 章,协议(Protocols) 第 15 章,Delegate 第 16 章,线程 第 17 章,文件系统 第 18 章,数据系列化以及保存用户数据 第 19 章,网络编程 第 20 章,XML 解析 此文仅包含1-8章。仅供大家学习参考。 如果谁还有下半部请共享给大家。非常感谢。 立即下载

相关推荐

Qlib数据获取避坑指南:从CSV导入到自定义数据源的完整解决方案

本文详细解析了Qlib数据获取的完整解决方案,从CSV导入到自定义数据源,涵盖了股票数据处理的关键技巧和常见陷阱。特别针对Qlib平台的数据格式要求和复权处理提供了实用指南,帮助量化投资者高效整合Wind等第三方数据源,确保数据质量与模型性能。

weixin_29047919的博客 304

object-c 入门基础篇

object-c 入门基础篇博客分类: iphone      一、Objective-C与C的渊源       Objective-C诞生于 20 世纪 80 年代,由Brad Cox 发明,意在将流行的、可移植的 C 语言与优雅的 Smalltalk 语言结合在一起。Objective-C 是 C 语言的一个扩展集,它以 C 语言为基础,在语言中添加了一些微妙但意义重大的特性。       苹...

weixin_33912246的博客 475

AEB(自动紧急制动)

AEB系统对静止物体的误判率受多种因素影响,包括传感器精度、算法复杂性以及环境条件等。通过多传感器融合、算法优化、硬件升级以及环境适应性增强等技术手段,可以有效减少误判问题。美国和欧洲的AEB法规均强调了技术性能和安全性,但具体要求有所不同。美国的NHTSA规定更注重高速和复杂场景下的紧急制动能力,而欧盟的ECE R152法规则更侧重于基础的AEB功能覆盖范围。

百态·数智思维 | 聚焦大数据、量化与未来AI 2550

Object-C(iphone)开发入门

1、本文适合人群 如果你对 iPhone 感兴趣, 如果你考虑向全世界的人们展示你的创意, 如果你有一颗好奇心,如果你打算通过开发 iPhone 程序谋生, 如果你觉得苹果比 Windows 酷, 如果你认为不懂苹果的话那么就有些不时尚的话,那么可以考虑阅读本系列。 老手也可以考虑花一点时间阅读一下,可以发帖子和笔者交流切磋。笔者发布的文章属于公益写作,旨在为大家介绍 iP...

weixin_30257433的博客 231

视觉SLAM的前段后端最详细的梳理(硕士入门知识框架更新)

文章目录视觉SLAM的组成结构视觉里程计(VO)-特征点法 -构建稀疏点云地图-直接法 -构建稠密或半稠密的地图 --需要使用 RGB-D 传感器视觉里程计--总结:SLAM 后端研究滤波器法非线性优化后端方式的差异(有五种优化方式):单目视觉里程计的初始化:运动估计:半直接法运动估计的优化方案:关于解决累计误差的一些方法:关键帧的建图及后端优化:特征的深度估计:图优化的后端研究:视觉与IMU融合的分类:视觉与IMU的融合的优势:存在的问题:优秀的开源: 视觉SLAM的组成结构 视觉里程计(VO) -特

DC 6812

CentOS7环境下搭建 rsyslog 日志服务器,rsyslog+loganalyzer

1.系统环境部署 ip hostname 192.168.200.182 web 192.168.200.184 rsyslog-mysql 关闭防火墙、selinux、下载epel源 [root@web ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/f

sehn_的博客 3754

第一篇 Object-C快速入门

Object-C是OS X和iOS上的主要程序开发语言。它是C语言的超集,提供了面向对象和动态运行时的功能。Object-C继承了C语言的语法、基本类型和流程控制语句,同时添加了定义类和方法的语法。当进行动态类型识别和绑定的时候,Object-C还添加了对象结构管理和对象语法的语言层面的支持,将很多工作延迟到了运行时进行处理。

陶罐的程序世界 3万+

从时序精度到视觉盛宴:PY32F030驱动WS2812的工程艺术与避坑指南

本文深入探讨了基于PY32F030微控制器驱动WS2812智能LED的完整解决方案。通过精确的时序控制、硬件PWM结合DMA传输技术,实现了稳定可靠的驱动效果,并提供了电源管理、信号完整性和常见问题排查等实用避坑指南,帮助开发者轻松应对严格的纳秒级时序挑战。

wind6的博客 120

douyin-ios-objectc:10分钟快速上手iOS抖音仿制项目

douyin-ios-objectc是一个基于Objective-C开发的iOS抖音仿制项目,让开发者能够快速了解短视频应用的核心架构与实现原理。本文将带你10分钟内完成项目环境搭建,掌握关键功能模块的使用方法。 ## 🚀 项目核心功能概览 该项目完整复刻了抖音的核心交互逻辑,主要包含三大功能模块: - **短视频流播放**:支持上下滑动切换视频、点赞评论等互动操作 - **用户主页**:

gitblog_00683的博客 850

uniapp:实现圆盘/色盘取色器组件,圆环颜色选择器用户可拖拽选择颜色值实时更新用户选择的颜色数据,拖动丝滑流畅不卡顿(uniapp小程序/手机h5网页/安卓苹果app/nvue都能使用,详细源码)

uniapp项目中使用颜色选择器,uniapp实现简单圆形色盘、取色器、拾色器组件,Uniapp自定义颜色选择器取色器,圆形的颜色选择器,uniapp颜色拾取器,拾色器 取色器 颜色选择器,uniapp vue3圆形的色盘取色,uni-app如何封装一个取色器组件,用uniapp写调色板,uniapp颜色选择器插件,实现圆环颜色选择器,Uni-app在App端使用颜色选择器,uniapp微信小程序圆盘颜色选择,uniapp H5网页实现圆形的取色器,使用canvas实现的简单圆形色盘,可自定义相关大小,un

✅ 精选推荐文章 4534

若依框架二次开发——若依 Vue3 版本前端样式优化指南

若依框架二次开发——若依 Vue3 版本前端样式优化指南

bjzhang75的博客 1692

一个在ios当中采用ObjectC和opencv来显示图片的实例

在ios中采用ObjectC编程利用opencv来显示一张图片,并简单绘图。听上去似乎不难,但是实际操作下来,却不是非常的容易的。本文较为详细的描述了这个过程,供后续参考。

1574

【城市数据集】世界城市数据库和访问门户工具WUDAPT

简介世界城市数据库和访问门户工具WUDAPT

WW、forever的博客 1286

Iphone开发基础篇(一)-ObjectC之Hello ObjectC

前言与展望 说起iphone开发,必然要先说说iphone了,也就是苹果手机,总体来说,苹果手机的出现带动了一系列的IT行业的迅猛增长,在2007年6月29日苹果公司首发iPhone,在当年9月10日iPhone就突破了100万台,苹果公司股价涨至180美元,由于苹果手机硬件和系统几乎完美的结合,给了用户非常舒适的操作感,导致了苹果手机的疯狂热卖.从3GS爆发,到现在的4S一发不可收拾。 在i

程序猿GTC 3332

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

iOS 之 OBJECTC 调用C、OBJECTC调用C++

iOS 平台软件开发使用 OBJECTC 会经常使用 C 或 C++ 目的主要: 1. 复用之前成熟的代码  2. 复用开源项目代码 毕竟开源成熟的C/C++ 很多 3. 像STL非常方便开发的标准库 也习惯了,当然也想复用 4. 总之,每种情况下就想用C/C++ 代码 有以下情况混合 1. OBJECTC 调用  C  这是 OBJECTC 的天生所在,xcode本身就支持

伍意的博客 9145

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

iOS开发ObjectC内存管理

iOS开发ObjectC内存管理我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上)。如果一个对象创建并使用后没有得到及时释放那么就会占用大量内存。其他高级语言如C#、Java都是通过垃圾回收来(GC)解决这个问题的,但在OjbC中并没有类似的垃圾回收机制,因此它的内存管理就需要由开发人

mengjun_win的博客 679

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

douyin-ios-objectc项目部署指南:从零开始搭建完整的抖音应用

抖音iOS Object-C版(douyin-ios-objectc)是一个基于Objective-C开发的开源项目,旨在帮助开发者快速搭建类似抖音的短视频应用。本指南将带你从零开始,一步步完成项目的部署与运行,让你轻松掌握iOS短视频应用的搭建技巧。 ## 准备工作:环境与工具安装 在开始部署前,请确保你的开发环境满足以下要求: - **操作系统**:macOS(推荐版本10.15及以上)

gitblog_00066的博客 353

ObjectC语言基础2—Foundation、结构体、字符串、集合

一、变量 1、局部变量的生命周期,从代码生成那一行开始才分配存储空间,到代码块结束变量消亡。同时在函数外面定义的变量是全局变量,它的作用范围是从变量定义的那一行开始,到文件结束,所有方法内部都能共享。全局变量只定义不初始化,里面的值系统会自动初始化,局部变量不初始化,里面的值不确定。函

kongkeA300的专栏 724

IOS开发学习笔记(二十二)——ObjectC语言难以理解的概念汇总

这篇文章将会对ObjectC语言中比较难理解的概念进行汇总,帮助我们更好的进行iOS开发。 方法 我们首先看一个很简单的方法代码: - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath; 对于我这种用了多年C/C++和Java的

「行到水穷处,坐看云起时」 1833

[ObjectC]分享到支付宝iOS接入

定义前言引入SDK头文件: #import "APOpenAPI.h" //支付宝 #define ZFB_APP_ID @"2017111509948730" //继承用于回调 @interface AppController () @end官方文档说明重新函数- (BOOL)application:(UIApplication *)application didFinishLaunch

超越 1527

记一次protobuf编译成objectC过程 For ios开发

相关文档说明: 官方文档:https://grpc.io/docs/tutorials/basic/objective-c.html 阿里云讨论:https://www.aliyun.com/jiaocheng/ios_1410.html?spm=5176.100033.2.8.Ij2Pzr 简书ios-grpc集成:https://www.jianshu.com/p/f33091df088...

Carry_Jey 2334

IOS开发ObjectC Block的实现方式

前言:我们可以把Block当作一个闭包函数,它可以访问外部变量和局部变量,但默认是不可以修改外部变量。你可以使用它来做回调方法,比起使用代理(Delegate)会更加直观。顺带一提,苹果很多的接口(API)都使用了Block。 一、Block的基本定义 Block的基本写法(也是详细写法): returnType (^blockName)(params) = ^returnType(pa

fushuning的专栏 380

转载大神IOS开发系列【4】--ObjectC语言之基础知识

转载自:http://www.cnblogs.com/kenshincui/p/3861300.html 概览 前面我们已经用了几章内容进行C语言介绍,当然要通过几篇文章完整的介绍C语言的知识是不太现实的,例如C语言的文件操作、内存申请等我们都没有重点介绍,当然核心知识点基本都已经提到了,后面有时间我们会继续扩充。今天我们正式开始学习Objective-C,以后简称“ObjC”,O

yuxikuo_1的专栏 602

Android和IOS的区别

这也在根本上造成了iOS与Android性能不同:Android和Window一样,目的是打造一款通用性非常好的系统,在任何机器上面都可以运行;2、所有的Android的应用程序都是运行在RAM里面的,所以会发现有时候Android用着用着就开始有点卡了。其实是由虚拟机传递的,并且通过虚拟机,Android的任何程序都就可以轻松访问其他程序文件。2、手机操作系统,Android较多,ios较少且不能降级,只能单向升级;ios的OC,基于对象,完全兼容C语言的语法,可以直接操作内存。

2401_85726131的博客 1157

和我一起来学iOS(一)ObjectC的语法

和我一起来学iOS(一)ObjectC的语法 前言: 为什么叫和我一起学呢?因为从开始写这系列博客中我就定了一个方向,不从最基本的讲,而是挑一些如果从其他语言(C、C#、 Java、 Javascript等)转过来的程序员容易出错的地方。 假设你是有几年其他语言的开发经验,对我说的上述基本语言有了不错的了解。这其实也是我当初学这门语言时最希望别人告诉我的地方。   独特的@符号

SenDylan 809

微信聊天记录导出免费完整:WeChatMsg 一键导出并生成年度聊天报告

WeChatMsg 是一款免费开源的微信聊天记录导出工具:从手机或电脑提取对话,转成 HTML、Word、CSV 永久保存,顺带生成年度报告。全程本地运行,数据不出设备。 ## 微信聊天记录导出的环境准备:四行命令跑起来 前提只有一个:电脑里装了 Python 3.7 及以上版本。确认环境后,运行下面四行命令: ```bash python --version git clone https

gitblog_00758的博客 967
上一篇: Struts2的JSON数据处理
下一篇: IOS开发学习笔记(二)——简单小例子
Soloman
博客等级 码龄25年 171粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值