我的iOS之路2
第一篇果然没人看呢...好吧...那就当笔记做吧...第一篇主要写的是生成了一个helloworld,可能也是和别人撞了,所以有点厌烦,连名字都改掉吧
好,开始写第二篇
之前做第一个应用程序的时候没有解释任何代码,只是照着写就是了,现在,我们得学一些关于objective-c的东西了
首先我们知道objective-c 是一个面向对象的语言,而C语言是一个面向过程的语言,为什么我们要用objective-c来写iOS程序呢,为什么不用C其实学了这些天我感觉objective-c==c+objective类库,其实就是一种类似c的新语法,然后应用这些已被封装好的类库来实现我们所需要的功能,我们知道苹果对自己的程序员是很照顾的,我在学习的过程中一直觉得是站在巨人的肩膀上进行编程,现在让我们看一下我们在使用objective-c过程中使用了那些内容.
首先说类
学过c#的一定是知道类的,类在我看来是面向对象思想中比较重要的一块内容了,因为他相当于我们面向对象的一个对象,而我们发现在objective-c中所有的对象(我看到过的)都是指针,也许没学过C的会觉得指针很痛苦,我会讲我的博客内容尽量按照c#的语法来讲,既然难懂,那就让我们直接创建一个类吧.我们可以使用终端,来创建一个.m文件
创建了第一个.m文件后,我们在这里写这个类
好,让我们生成了这个类,然后让我们来解释一下为什么这样做,在图片右边的是系统自带的终端,类似window的cmd其实我觉得可能也就我不熟这玩意儿,很多人应该都还是很清楚的,这个样式类似适应UNIX系统一样,文件需要靠代码来生成,具体怎么搞我这里就不做赘述了
我们要讲的是我们生成的这个类,我们生成了一个博客这样一个类,所以在@interface....@end之间我们定义了一个blog这样的类,在objective-c我还没看到那个类是不需要继承父类的,所以他的父类类型我们就先继承NSObject,而这个NSObject类是来自于apple自带提供的Foundation框架,这也就是我们在使用终端连接我们的.m文件的时候需要写-framework Foundation的原因,因为们的框架要应用系统所带的框架,而不是自己写的,当然这也是我们在头部写#import <Foundation/Foudation.h>的原因,而且我发现了一个诀窍,其实对于系统他又很多的框架的,在应用没个框架的时候我们发现,头部我们都是写这个框架的#import <名称/名称.h>,什么意思呢,我们找几个系统的框架
这即使系统框架的目录了,我们会发现,所有的框架都是.Framework结尾的,然后我们会发现几个重要框架,比如Cocoa.framework,Quartz.framework这些重要的框架,而我们如果要加载他只要使用他的名字加上他的名字.h这样的方式就行了,比如我要调用Quartz.framework,我只要写#import <Quartz/Quartz.h>就可以调用他了,而且#import比#include有一个优点,他会自动帮你查看是否有重复调用,以前我们使用#include来加载头文件的时候我们可能会调用多次同一个头文件,而现在#import就帮我们自动解决了这个烦恼...是不是觉得调用头文件变得方便了很多呢...
然后让我们来看类,类是什么,类就是一个对象集合,不多说了直接贴图
看完上面的图是不是觉得东西都清楚了很多...就先讲这么点,反正没人看就当做笔记了
我的iOS之路2的更多相关文章
- 那些年做过的 .NET Web 项目和 iOS 之路的一些思考
从2010年3月份出来工作到2015年初,做过的大大小小的 .NET Web 项目如下: (1)售楼系统产品 「Role: Team Member」 (2)中弘合同管理系统 「Role: ...
- iOS GCD NSOperation NSThread等多线程各种举例详解(拷贝)
2年多的iOS之路匆匆而过,期间也拜读来不少大神的博客,近来突然为自己一直做伸手党感到羞耻,是时候回馈社会.回想当年自己还是小白的时候,照着一些iOS多线程教程学,也只是照抄,只知其然.不知其所以然. ...
- 从零开始学IOS开发
从今天开始开一个坑,由于业务变动,要开始学习IOS开发进行IOS app开发,其实鄙人本身就是一只菜鸟加大学狗,有过两年的C#,ASP.NET MVC,微信公众平台开发经验,一只在继续努力着,从大三下 ...
- Appium移动自动化测试之—基于java的iOS环境搭建
本文仅供参考,同时感谢帮助我搭建环境的同事 操作系统的名称:Mac OS X操作系统的版本:10.12.6 接下来我们开始踏上搭建Appium+java+ios之路,本文只说个大概,毕竟本机已经装过了 ...
- Appium的iOS环境搭建
操作系统的名称:Mac OS X操作系统的版本:10.13.3 xcode 版本:9.2 java 版本:java8_161 appium destop版本:1.7.3 接下来我们开始踏上搭建Appi ...
- 谈谈入门iOS的经验吧
前言 近期忙完项目比較闲,想写一篇博客来分享一些自学iOS的心得体会,希望对迷茫的你有所帮助.博主非科班出身,一些计算机术语上的不专业欢迎大家指正. 我是学微电子的.大四的时候找了一家深圳的专业对口的 ...
- fir.im Weekly - 进击的 Swift
最近 Swift 开源了,众开发者们欢呼雀跃.感谢开源,这是最好的时代.本期 fir.im Weekly 准备了一些关于 Swift 的"新鲜"干货分享,也包括一些优秀的 GitH ...
- 纪录我的iOS学习之路
学习资料的网址 田伟宇(Casa Taloyum)有几篇介绍iOS架构的文章,一级棒!原博客链接. iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方 ...
- ReactNative新手学习之路04 组件化开发轮播图swiper支持安卓和IOS
react native 新手之路04 组件化开发轮播图swiper支持安卓和IOS npm install react-native-carousel --save git 地址Properties ...
随机推荐
- Android 7.0 UICC 分析(一)
UICC(Universal Intergrated Circuit Card) 框架 * Following is class diagram for uicc classes: * * UiccC ...
- Erp中的ATP和CTP是什么?两者有什么区别?
可用量承诺(Available to Promise,ATP),是一种库存匹配模型,意在最大限度地利用库存产品对客户订单需求做出及时和准确的反应,缩短交货提前期.降低库存水准: 可用生产能力承诺(Ca ...
- JS Encode and Decode URL
1.Encode URL String var url = $(location).attr('href'); //get current url //OR var url = 'folder/ind ...
- C# 闭包
1. 首先要说明的是, delegate 被编译器 编译成一个class, 所以才能传来传去(具体参考 <CLR via C#>第四版), 所以 Action.Func也是如此 2. 在C ...
- TDDL DataSource
TDDL DataSource 分为 AtomDataSource GroupDatasource 他们两者没有依赖关系, 都实现了 JDBC 规范, 可以作为独立的 datasource 单独使用 ...
- 微信公众平台创建自定义菜单中文编码导致system error
创建包含了中文的自定义菜单时总是返回{"errcode":-1,"errmsg":"system error"},要将编码方式设置为UTF- ...
- [转]学术型 github 畅想
转自 http://wulfric.me/2013/09/github-and-academy/ 以 github 的精神提供学术服务,也许是一个不错的方向. 什么是 github? Github 是 ...
- struts2的文件上传
在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来 ...
- SQL Server客户端登录名与数据库用户关联
数据库迁移之后,在新的SQL Server客户端工具设置关联时,往往会报错: 用户.组或角色 'XXX' 在当前数据库中已存在. 解决方法: 首先介绍一下sql server中“登录”与“用户”的区别 ...
- CAD 二次开发--属性块
1.属性块的定义 属性块是有构成的实体和附加信息(属性)组成的,属性块中块的定义与简单块中块的定义一样,而属性的定义主要是通过属性的AttributeDefinition类的有关属性和函数来实现的.具 ...