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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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