iOS项目的开始

一、我们如何开始建立一个iOS的工程

创建项目(一).png

我们会在应用程序中打开1处(俗称xcode),我们会开始在这里写代码;
在2处双击就会开始创建一个项目;
等项目在mac电脑中run起来后,会在3处(俗称simulator)向手机一样展示应用。

创建项目(二).png

第4处是产品名称,一般都是应用在手机上展示的名称,建立后项目是可以修改展示的名称;
第5处是苹果账号的开发团队的id,这个需要有苹果账号的人员把你加入团队中才能选中,建立项目后也是可以修改的;
第6处是选择的语言设置,目前仅支持Objective-C和Swift两种语言,这里我们选中Objective-C语言。
至此我们就创建好一个空白的项目了。

二、项目的配置

a、添加.gitignore
一般我们的项目都用git管理代码库,我们在改动一些代码或者配置的时候只希望改变相关的东西,至于其它的文件并不希望被改动提交到远程仓库中,这时候我们就希望添加.gitignore文件忽略某些不相关文件的改变。
.gitignore文件内容如下:可以根据自己的需要在网上自己寻找

# atom .gitignore

# Xcode
Products/
.DS_Store
build/
Build/            # ignore Build folder
Index/
*.pbxuser         # ignore all *.pbxuser
!default.pbxuser  # except default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3

# *.xcworkspace
!default.xcworkspace
xcuserdata
profile
*.moved-aside
DerivedData
.idea/
Pods/
Podfile.lock
/Podfile.lock

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://github.com/github/gitignore/blob/master/Objective-C.gitignore
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
# And most people choose to check in the Pods/ directory:
# https://stackoverflow.com/questions/9446644/what-goes-into-your-gitignore-if-youre-using-cocoapods
#
# Pods
# Podfile.lock

# handle existed project using following command
# git rm --cached `git ls-files -i --exclude-from=.gitignore`

Pods/resources-to-copy-jiaxiaozhijia-ios.txt
__XCodes
linkmap/linkmap.txt

b、添加cocoapods包管理
我们要引进第三方的功能时,我们可以把文件拷贝进来,但这样会要我们手动删除添加文件并且配置一些系统的库文件,如果第三方库多并且改动频繁的时候,我们可能就会感觉很疲累。
这时我们就可以引进cocoapods,在项目的根目录下添加Podfile文件

#支持的系统平台
platform :ios, '9.0'
#第三方库的来源
source 'https://github.com/CocoaPods/Specs.git'

#'Test'项目名称
target 'Test' do
    project 'Test.xcodeproj'    
    #第三方库的名称,版本号,   是否忽略第三方库的警告
    pod 'AFNetworking', '~> 4.0.1', :inhibit_warnings => true

end

在目录下执行"pod(mac 系统自带的) install",等好了我们就可以引用AFNetworking的头文件了

项目文件结构.png

项目文件结构如上:

7处是.gitignore文件
8处是添加cocospods生成的文件,点击Test.xcworkspace就能跑起代码
9处是干净的项目运行起来的,添加完cocospods文件后不能点击跑起代码,因为里面没有带上第三方库代码会编译报错的

三、代码文件结构

代码文件结构.png

10处是我们run起项目
11处是选择哪种模拟器
12处是查看整个文件
13处是全局搜索
14处是编译报错时查看
15处是查看断点
16处是我们开始写代码的文件
17处是cocoapods导入的第三方文件,不需要我们管理

main.m文件是我们整个项目运行的入口处,但我们一般不会对它进行代码编辑
我们直接run起项目,不进行任何代码编辑,则项目是运行起ViewController视图文件,把它当做root视图
ViewController.h文件是暴露给其它文件调用的方法
ViewController.m是自己执行的代码逻辑的文件
在iOS13之后我们可以在SceneDelegate.m文件中创建自己的root视图,而在这之前是在AppDelegate.m文件创建root视图

四代码风格

#import <UIKit/UIKit.h>  "<>"包含的是系统或者是第三方的库文件
#import "AppDelegate.h"  " "" "包含的是自己开发的库文件

//继承UIResponder,遵守UIApplicationDelegate协议
@interface AppDelegate : UIResponder <UIApplicationDelegate>
//@interface @end中声明一个类的方法或者属性
//assign基本表示基本属性,不能声明对象,因为在对象引用机制为0时不会销毁对象,造成内存泄漏,形成野指针
@property (nonatomic, assign) NSInteger age;
//copy表示浅拷贝,只拷贝内容,不拷贝指针,不随着拷贝的内容改变而改变
@property (nonatomic, copy) NSString *name;
//strong表示深拷贝,既拷贝内容,又拷贝指针,随着拷贝的内容改变而改变
@property (nonatomic, strong) NSArray *array;
//实例方法,需要name和age两个参数
- (void)speakWithName:(NSString *)name age:(NSInteger)age;
//类方法,返回一个字符串
+ (NSString *)returnSetting;
@end

@implementation AppDelegate
//@implementation @end中实现方法或者使用属性
- (void)speakWithName:(NSString *)name age:(NSInteger)age {
  NSLog(@"打印:%@", [AppDelegate returnSetting]);
  NSLog(@"我是%@, 今年%ld", name, age);
}

+ (NSString *)returnSetting {
  return @"我是实例方法";
}
//未声明的方法,只能内部调用,外面的文件不能使用
- (void)initialInstance {
//初始一个实例对象
  AppDelegate *p = [[AppDelegate alloc] init];
  [p speakWithName:@"appdelegate" age:12];
}

@end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358

推荐阅读更多精彩内容

  • 前两天,支了一个阿姨,她是跟她三个朋友一起来的,只有她再试衣服,她试了一条丝绒裙,觉得很喜欢,她朋友也都说挺...
    yx杨雪阅读 450评论 0 0
  • 以前只是听说人与人之间的差距比人与动物的差距都大。 上个星期进了刘大猫的群,有机会见识了牛人做事的方式,切实体会了...
    文明发言阅读 174评论 0 1
  • 在不经意的时候,一转眼便会有一颗苍老的桃花树的影子飘过,这使我困惑。 桃花不是名贵的花,也不是最美的花,但是,对于...
    芷墨l阅读 369评论 13 29
  • 初心,按照字面理解自然是最初的心思。我们在最开始规划的时候,都会有一个很明确的想法,有的人想成为一名商人,...
    一只独自游水的鱼阅读 162评论 1 0