iOS项目中常见文件

 

项目名Tests  做单元测试用的 

frameworks 项目依赖的框架

products 对mac的有用 ,ios没有用

 

以上是一个 Single View Application

Info.plist常见的设置 ,本质是上 xml

新建一个工程之后,将会在 Supporting files文件夹下看到一个”工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除.

在旧版本的xcode中, 这个配置文件的名字就叫做 “Info.plist”

然后,在最新的 xcode6中,又变成了 Info.plist ,难道是复古了?

项目中其他Plist文件不能带有 “Info” 这个字眼,不然会被错认为是重要的 Info.plist

可以看到,很多项目的信息

软件名称 ,默认情况下 ,是项目名称

info.plist 不能乱删 ,其他文件不要命名为 info.plist

 

如果更改了 plist  ,(修改了项目的资源文件也是如此) 

第一件事情是 clean ,

第二件是把原来的软件卸载掉

 

 

 

Info.plist 的常见属性

括号内是用文本编辑器打开看到的 key

Localization nativedevelopment region (CFBundleDevelopentRegion)-本地化相关

Bundle display name (CFBundleDisplayName)- 程序安装后显示的名称,限制在10-12个字符,如果超出,将被显示缩写名称

Icon file (CFBundleIconFile) –app图标名称,一般为 Icon.png

Bundle version(CFBundleVersion)-应用程序的版本号,每次往App Store 发布一个版本时,需要增加这个版本号.

Main storyboard file basename(NSMainStoryboardFile)-主storyboard文件的名称

Bundle identifier(CFBundleIdentifier)-项目的唯一标识,部署到真机时候用到.

prefix.pch文件

1.最适合放全局的宏,模型等

2.做 全局导入

比如:

调试阶段: 写代码,调试错误,肯定需要打印 

发布阶段: 写好的代码生成 ipa等压缩包文件 ,上传到 AppStore ,安装到用户的设备上

 

MJLog(...)   ... 代表可以接受任何参数

#define MyLog(…)NSLog(__VA_ARGS__)

如果不想打印 ,那么直接把 NSLog(__VA_ARGS__)注释即可 

 

还有更智能的方式

 

如果是调试阶段:(你用的xcode运行的程序),那么系统会自动定义一个叫做DEBUG的宏

打包的时候, 系统会自动删除 DEBUG的宏

 

 #ifdefDEBUG  //调试阶段
  
 #defineMJLog(...) NSLog(__VA__ARGS__)
  
 #else //发布阶段
 
 #defineMJLog(...)
  
 #endif


prefix.pch的作用

1.存放全局的宏(整个项目都用得上的宏)

 2.用来包含一些全部的头文件(整个项目中都用得上的头文件)

 3.能自动打开或者关闭日志输出功能


建议把所有和 oc有关的东西写到 ifdef 里面

 

比如

//
//  Prefix header
//
//  The contents ofthis file are implicitly included at the beginning of every source file.
//
 
#import <Availability.h>
 
#ifndef __IPHONE_5_0
#warning "This project uses features only availablein iOS SDK 5.0 and later."
#endif
 
#ifdef __OBJC__ //里面的内容只能用于.m 或者 .mm文件中
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif
 
 


 

 
#ifdef __OBJC__ //里面的内容只能用于.m 或者 .mm文件中
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
 
#import "someClass.h"
#ifdef DEBUG //调试阶段
#define MyLog(...)NSLog(__VA_ARGS__)
#else //发布阶段
#define MyLog(...)
 
#endif


这样的目的是:防止其他类型的文件,比如 c语言的文件使用我们的全局宏等

更重要的是导入 

外面的所有东西是整个项目共享的 

如果#imort写到ifdef外面,那么默认其他文件比如 c 也会加上 ,它根本没有此种语句 ! 所以连编译都不会通过 .

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值