iOS开发系列—Objective-C之基础概览

概览

前面我们已经用了几章内容进行C语言介绍,当然要通过几篇文章完整的介绍C语言的知识是不太现实的,例如C语言的文件操作、内存申请等我们都没有重点介绍,当然核心知识点基本都已经提到了,后面有时间我们会继续扩充。今天我们正式开始学习Objective-C,以后简称“ObjC”,ObjC是在C语言的基础上加上了一层面向对象的特性,它完全兼容C语言,甚至可以混写C++。它是Mac OS X和IOS的主要开发语言,从IOS发布之后可以说ObjC的地位呈直线上升趋势,当前ObjC已经是仅次于C语言、Java的第三大编程语言。今天我们先简单的看一下C语言的一些基础内容:

  1. 第一个ObjC程序
  2. 基本数据类型

第一个ObjC程序

打开Xcode,创建一个新项目

Xcode

选择命令行程序

CommandLine

选择程序语言为Ojbective-C并输入项目名称

ProjectName

选择保存目录

SelectFolder

默认生成一个基本的项目结构

Program

程序源代码

//
//  main.m
//  Basics
//
//  Created by Kenshin Cui on 14-2-1.
//  Copyright (c) 2014年 Kenshin Cui. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
    }
    return 0;
}

上面是通过Xcode创建的第一个ObjC程序,这是一个经典的“Hello,World!”。运行结果如下:

RunResult

下面对上面的代码做一下简单解释:

  1. 首先#import是一个导入命令,类似于C语言的#include命令,但是相对于#include而言,#import有效的处理了重复导入的问题,在C语言中也提到过如何通过条件编译解决重复导入,而在ObjC中你不需要处理了,#import已经自动进行了重复处理;与#include类似,导入系统类库使用<>,导入自定义类库使用””;
  2. Foundation.h是Foundation框架中的头文件,这是ObjC中的一个基础类库,基本上后面我们用到的所有ObjC的代码都需要引入这个类库;
  3. @autoreleasepool是ObjC的关键字,它的作用是对包含在这个关键字后面大包括内的程序会自动进行内存回收,不需要开发人员手动释放无用的对象;当然表面上看起来这有点类似于C#和Java的内存垃圾回收机制,但是事实上他们的原理完全不同,以后再做具体解释。
  4. NSLog是标准输出函数,类似于C语言中的printf()函数,但是它会自动换行,当然它同样支持格式输出(例如%i表示输出整形数据,%f输出浮点型数据),这个函数在Fundation.h中声明;
  5. @”Hello,World!”,是一个字符串常量,在ObjC中字符串前需要使用@符号;

 

扩展--OjbC语法特点

  • ObjC中没有命名空间(C#)或包(Java)的概念,那也就是说在同一个应用中不能同时存在两个完全相同的类名,通常情况下我们通过前缀加以区分,例如在ObjC中的NSString、NSLog中的NS就是前缀。

NS其实是NeXTSTEP缩写,是乔布斯离开苹果后在NeXT公司所开发的系统,这个操作系统在当时虽然没有获得广泛认同,但是却为后面Mac OX奠定了基础。

  • ObjC中很多关键字都是以@开头(例如@autoreleasepool、@interface、@protocol),另外需要注意的是为了区分C语言中的字符串,ObjC中的字符串也必须加上@。

基本数据类型

在ObjC中的基本数据类型除了C语言中的char、int、float、double之外还有:

  1. BOOL类型,包含两个值YES和NO,其实ObjC中的布尔类型就是整数1和0;
  2. id类型,是一个对象类型,可以表示所有对象;
  3. NSString是Fundation框架中定义的字符串类型;
//
//  main.m
//  Basics
//
//  Created by Kenshin Cui on 14-2-1.
//  Copyright (c) 2014年 Kenshin Cui. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        char a='a';
        int b=1;
        float c=8.5;
        double d=8.5e+12;
        char e='a';
        BOOL f=YES,g=NO;
        NSLog(@"a=%c,b=%i,c=%f,d=%f,e=%c,f=%i,g=%i",a,b,c,d,e,f,g);
        //结果:a=a,b=1,c=8.500000,d=8500000000000.000000,e=a,f=1,g=0
        
        NSString *str=@"Hello,World!";
        NSLog(@"str=%@",str); //结果:str=Hello,World!
        
        NSLog(@"object=%p",nil);//结果:object=0x0
    }
    return 0;
}

关于上面id类型在这里不做过多的解释,后面我们会专门说到,下面列出常用格式符:

格式化输出

 

注意

1.在C或者ObjC中整形可以使用%i也可以使用%d来格式化,只有使用scanf()输入的时候二者才有区别(由于%d始终被编译器解释为decimal intergeer所以即使输入010会被认为是整形10,而%i则会将前面的0或者0x认为此输入是八进制或十六进制整数);

2.%p本质就是输出指针地址,在32位编译器下对于一个指针类型使用%x输出和%p输出其实是一样的,只是后者会在前面加上“ox”(注意在64位编译器下由于指针长度8byte,而整形只有4byte所以%x输出的内容只是%p的低位数据);

IOS开发开篇之Objective-C语法基础      首先声明:本系列技术博客只作学习之用,不存在其它目的。     作者从在吸收众多网友经验基础上,结合自己在IOS开发的经验将对IOS开发技术进行总结,以供后来者学习,更希望借此使自己对IOS开发的深入理解。      一、Objective-C与C的渊源      Objective-C诞生于 20 世纪 80 年代,由Brad Cox 发明,意在将流行的、可移植的 C 语言与优雅的 Smalltalk 语言结合在一起。Objective-C 是 C 语言的一个扩展集,它以 C 语言为基础,在语言 阅读详情

相关推荐

高级iOS开发:Objective-C设计模式实战指南

本文还有配套的精品资源,点击获取 简介:本书《Pro Objective-C Design Patterns for iOS》针对iOS开发者,深入讲解Objective-C设计模式,旨在提升编程技巧和设计思维,使代码更优雅、可维护和易扩展。涵盖工厂模式、单例模式、代理模式、观察者模式、装饰者模式、策略模式、状态模式、命令模式、适配器模式和建造者模式等关键设计模式,并通过实...

weixin_42350014的博客 1972

适配Oracle版本的ojbc驱动包版本,以及ojdbc驱动包的下载地址

1.适配Oracle版本的ojbc驱动包版本 2. ojdbc驱动包的下载地址 ojdbc各个版本下载 3.将ojdbc放在一个c盘根目录下,然后以管理员身份打开cmd,执行下面命令;(做这一一步之前,你需要在本地配置maven环境) mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=c:/ojdbc6.jar 4.然后在本地的mave

总结复盘,才能不迷失自己! 2205

oracle -jdbc链接jar包 ojbc6

oracle jdbc的数据库连接jar亲测可用,请大家放心使用

Objective-C

OC介绍 文章目录 前言 一、OC是什么? 二、第一段OC代码 三、OC基本介绍 前言 Objective-C是一种面向对象的C语言,本质还是C语言,兼容C和C++ ​​​​​​​ 简称:OC 提示:以下是本篇文章正文内容,下面案例可供参考 一、OC是什么? Objective-C,通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用...

CodeBlog-star 1740

WSL2双显卡配置实战:避开Tesla与TCC模式的那些坑

本文针对WSL2环境下无法识别Tesla计算卡的问题进行深度解析。核心原因在于WSL2目前仅支持WDDM模式的显卡,而Tesla系列及运行在TCC模式下的显卡因采用纯计算架构而无法兼容。文章提供了详细的排查步骤,并给出了包括调整显卡用途、使用虚拟机或物理机在内的多种实用解决方案,帮助开发者避开配置陷阱。

weixin_29289821的博客 543

ABAP ALV编辑后触发事件

1.FUNCTION ALV在it_events的参数中,写入对应的事件。2.OO ALV和FUNCTION ALV都可以,注册当前ALV的事件,对应的事件需要创建对象去实现。下面代码中,实现的是第一种,在it_events中写入事件。下面的代码是通过创建对象去实现ALV事件。

a86632678的博客 3852

Object C学习笔记2-NSLog 格式化输出数据

Object C学习笔记2-NSLog 格式化输出数据 2014-01-18 08:21 by 贺臣, 206 阅读, 0 评论, 收藏, 编辑   1 . 几种常用类型变量声明     inti=10;     BOOLisShow=YES;     BOOLisShow=1;     floatf=3.1415926;     char...

weixin_30911809的博客 265

告别OpenAI API调用:手把手在本地CPU/GPU上部署fast-whisper中文语音识别模型

本文详细指导如何在本地CPU/GPU上部署fast-whisper中文语音识别模型,摆脱对OpenAI API的依赖。从环境准备、模型获取与优化,到CPU/GPU环境的具体部署步骤和性能优化技巧,全面覆盖本地化语音识别的实现方案,帮助开发者提升效率并保障数据隐私。

weixin_29988907的博客 309

iOS代码格式化

Xcode代码格式化(Objc)

qq_30252465的博客 2538

horizon之为connection服务器配置证书

打开connection1服务器(connection2 同connection1)再输入connection1的IP地址 可通过域名和IP地址进行登录。这时候用域名登录就发现证书已经没有警告了。win+R 调出“运行”,输入mmc。connection2 同上。如果还有报错请重启一下服务器。打开connection1。可以把这个先删掉 没用。打开DC_01服务器。右键选择证书颁发机构。友好名称只能是vdm。重启之后就没有报错了。

送个祝福给小豪的博客 2961

【DRAM存储器三十五】LPDDR4介绍--主要技术特性之VREF training,为什么要做VREF training?

详述DDR4、LPDDR4需要做vref training的原因和训练过程

highman110的博客 2918

IOS开发系列—Objective-C之基础概览

本文转自:Kenshin Cui's Blog 概览 前面我们已经用了几章内容进行C语言介绍,当然要通过几篇文章完整的介绍C语言的知识是不太现实的,例如C语言的文件操作、内存申请等我们都没有重点介绍,当然核心知识点基本都已经提到了,后面有时间我们会继续扩充。今天我们正式开始学习Objective-C,以后简称“ObjC”,ObjC是在C语言的基础上加上了一层面向对象的特性,

江湖两把刀的技术博客 1723

解锁RK1126与SC132GS摄像头适配密码:技术与代码全解析

本文详细介绍了瑞芯微RK1126芯片与SC132GS摄像头的适配方法。首先分析了RK1126的四核Cortex-A7处理器、Mali-T860 GPU等硬件特性,以及SC132GS的130万像素、全局快门等技术参数。重点阐述了基于MIPI CSI接口的硬件连接原理和基于V4L2框架的软件驱动设计,并提供了完整的初始化、数据采集和图像处理代码实现。针对常见连接和图像质量问题给出了解决方案,展现了该组合在智能安防、工业检测等领域的应用潜力,为开发者提供了实用的技术参考。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1506

IOS开发系列—Objective-C之基础概览

概览 前面我们已经用了几章内容进行C语言介绍,当然要通过几篇文章完整的介绍C语言的知识是不太现实的,例如C语言的文件操作、内存申请等我们都没有重点介绍,当然核心知识点基本都已经提到了,后面有时间我们会继续扩充。今天我们正式开始学习Objective-C,以后简称“ObjC”,ObjC是在C语言的基础上加上了一层面向对象的特性,它完全兼容C语言,甚至可以混写C++。它是Mac OS X和IOS的主要

Kenshin Cui's Blog 1527

教程: 将 SolidWorks 设计导出为 ROS 的 URDF

请按照以下步骤应用自定义徽标纹理:创建徽标材质文件:techniquepass材质名称:测试/材质颜色属性:环境、漫反射、镜面和发射都设置为白色(1 1 1 1),这意味着该材质看起来完全是白色的。纹理 在表面应用纹理图像 logo.png。将材质文件复制到 gazebo matrial:复制徽标图像:将 “徽标 ”替换为机器人上徽标所在位置的适当参考值。按照以上步骤,您就可以在 Gazebo 中为机器人添加自定义材质和纹理,包括徽标。

机器人控制与仿真应用 2459

华为OD机试双机位C卷-统计差异值大于相似值二元组个数(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【统计差异值大于相似值二元组个数】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 统计差异值大于相似值二元组个数

qq_45776114的博客 784

iOS开发系列—Objective-C之基础概览oc格式化输出例子

概览 前面我们已经用了几章内容进行C语言介绍,当然要通过几篇文章完整的介绍C语言的知识是不太现实的,例如C语言的文件操作、内存申请等我们都没有重点介绍,当然核心知识点基本都已经提到了,后面有时间我们会继续扩充。今天我们正式开始学习Objective-C,以后简称“ObjC”,ObjC是在C语言的基础上加上了一层面向对象的特性,它完全兼容C语言,甚至可以混写C++。它是Mac OS X和IOS

yuleidnf的博客 4511

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

iOS开发 objective-c

iOS开发之OC

q28292929的博客 2513

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Objective-C 编程指南:从基础到实战,探索iOS开发的魅力

Objective-C是建立在C语言基础上的面向对象编程语言,引入了Smalltalk风格的消息传递机制,支持动态类型和动态绑定,使得代码更加灵活。Objective-C虽然不如Swift那样现代,但在iOS开发领域仍然占据一席之地,特别是在维护旧项目或某些特定场景下。掌握Objective-C不仅能够让你深入理解iOS平台的底层机制,还能在一定程度上提升跨语言编程的能力。你在学习或使用Objective-C过程中遇到了哪些有趣或棘手的问题?有哪些独到的见解或技巧愿意分享?

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 3054

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

基于Objective-C的iOS开发--入门篇

基于Objective-C的iOS开发--入门篇1、Objective-C 基础 1、Objective-C 基础 Objective-C,顾名思义,其扩展了标准的ANSI C语言,引入了消息传递机制和面向对象编程。(以下默认已具有C/C++语言基础) .h文件:头文件。 .m文件:源代码文件,可以包含Objective-C 和 C的代码。 .mm文件:源代码文件,可以包含Objective-C、C以及C++的代码。仅在需要使用C++特性时使用。 头文件引用:除了可以使用#include,Objectiv

LilyZJ的博客 6046

IOS程序开发概览

概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言、ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序。但是这里我想强调一下,前面的知识是你日后开发IOS的基础,没有那些知识你开发IOS会很痛苦,现在很多开发人员做开发都是一知半解,程序质量确实令人担忧,所以还是希望大家能够熟练掌握前面的内容,开发过程中多思考,彻底理解程序运

风的坚持 3518

iOS开发系列---Objective-C之基础知识

一、Objective-C语言概述 Objective-C是一种面向对象的计算机语言,Brad J Cox 在20世纪80年代设计了Objective-C,该语言是基于SmallTalk-80。1988年NeXT发布了Objective-C,它的开发环境和类库叫"NEXTSTEP",1994年NeXT与Sun发布了标准的NEXTSTEP系统,取名"OPENSTEP",软件自由基金会OPE

Be a learner Not a knower. 1063

iOS开发开篇之Objective-C语法基础

作者从在吸收众多网友经验基础上,结合自己在IOS开发的经验将对IOS开发技术进行总结,以供后来者学习,更希望借此使自己对IOS开发的深入理解。       一、Objective-C与C的渊源       Objective-C诞生于 20 世纪 80 年代,由Brad Cox 发明,意在将流行的、可移植的 C 语言与优雅的 Smalltalk语言结合在一起。Objective-C 是 C 语

把握自己。 2533

Objective-C基础语言开发来袭,你准备好了吗?

恭喜你!你踏出了成为开发大佬的第一步!

小白电脑技术的博客 1393

IOS开发笔记(一)—— Objective-C基础

中山大学数据科学与计算机学院本科生实验报告 (2019年春季学期) 一、实验题目 IOS基础 二、实现内容 学习IOS基础 掌握objective-c的语法 了解ios部分设计模式 三、实验结果 Objective-C学习笔记 1.SmallTalk 式的消息传递模型 在java中,方法调用: obj.method(argument); OC中,方法调用: [obj method:arg...

dick的博客 425
上一篇: 手游公司运维之利用zabbix的自动发现功能监控游戏区服的redis数据库
下一篇: hdu 4864(2) 线段树
weixin_34029949
博客等级 码龄11年 6403粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值