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章。仅供大家学习参考。 如果谁还有下半部请共享给大家。非常感谢。 立即下载

相关推荐

PX4无人机-Gazebo仿真实现动态目标追踪的视觉控制方案

本文详细介绍了PX4无人机在Gazebo仿真环境中实现动态目标追踪的视觉控制方案。从PX4与Gazebo仿真环境搭建、动态目标追踪核心技术栈、仿真环境深度定制技巧到追踪算法的优化实践,提供了全面的技术指导和常见问题排查方法,帮助开发者高效实现无人机视觉追踪功能。

weixin_29196315的博客 450

object-c 入门基础篇

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

weixin_33912246的博客 475

用angr找到strcpy的栈溢出漏洞

这篇文章其实是分析angr文档里给出的一个挖漏洞的小例子。 原文链接在此:https://docs.angr.io/examples#beginner-vulnerability-discovery-example-strcpy_find 这是第一个用angr在二进制里找可利用条件的教程。第一个例子是一个非常简单的程序。这个angr脚本会从程序的entry到strcpy找到一条路径。(只有我们能够控制strcpy的参数的时候) 为了找到正确的路径,angr需要去算一个密码参数,算这个密码,angr只要2s

^_^ 1220

Object-C(iphone)开发入门

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

weixin_30257433的博客 231

HC-05蓝牙模块AT指令配置避坑全记录:从配对失败到稳定主从通信

本文详细记录了HC-05蓝牙模块AT指令配置的全过程,从基础认知到主从通信的稳定实现。涵盖了进入AT模式的方法、关键AT指令详解、主从配对流程及常见故障排除,帮助开发者快速掌握蓝牙串口模块的配置技巧,避免常见配对失败问题。

weixin_42632434的博客 416

VMware VSAN 高级参数介绍(测试用)

VSAN 的策略驱动让我们看到了VSAN无穷的潜力,其设计思路相当新颖,在一个基础资源池上使用策略就能实现不同对象的区分服务,而目前没有其他厂家能到VMware这样的高度。 VSAN 呈现给用户配置很简单,但实际上设计及后台比较复杂。笔者无意间发现了VSAN的隐藏高级参数设置,有很多好玩的选项想分享出来。这些参数全部是针对每主机进行设置的。VSAN 中有很多默认设置,这些设置应该都是研发人员多次测试得出的最优值,修改可能导致环境异常,并不建议修改! 目录 参数1:全闪配置下 SSD 写缓存最大.

山水牧羊 2031

第一篇 Object-C快速入门

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

陶罐的程序世界 3万+

WVP+ZLM国标平台实战:从设备注册失败到视频播放黑屏,我遇到的5个典型问题与解法

部署WVP+ZLM国标视频平台时,设备注册失败、视频播放黑屏等问题常常让运维人员头疼不已。本文将基于真实运维场景,剖析五个最具代表性的故障案例,提供从网络配置到版本兼容性的全链路解决方案。

weixin_33178839的博客 362

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

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

gitblog_00683的博客 850

Windows下Codex CLI binary报错排查与修复完整指南

在Windows开发环境中,命令行工具与图形界面应用的协同工作常常依赖于系统环境变量的正确配置。Codex CLI作为一款基于Node.js的智能编程命令行工具,其可执行文件(binary)的定位机制直接关系到桌面应用的正常启动。当用户执行npm更新或切换Node版本后,Codex CLI二进制文件路径可能发生漂移,从而触发“Unable to locate the Codex CLI binary”的报错。此类问题并非代码或账号异常,而是PATH路径、环境变量刷新及桌面应用缓存共同作用的结果。本文面向Wi

weixin_28718769的博客 305

网络系统管理专栏-配套练习+知识点详解

网络系统管理专栏-配套练习+知识点详解

bfq05234214的博客 682

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

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

1574

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

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

程序猿GTC 3332

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

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

伍意的博客 9145

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

iOS开发ObjectC内存管理

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

mengjun_win的博客 679

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、付费专栏及课程。

余额充值