1.Supporting files内有一个Xxx-Info.plist文件(旧版本Xcode的配置文件叫Info.plist)。因此自定义的plist不要带Info关键词。

这个plist是系统的全局配置,不能删除。

Bundle display name是软件的名称,需要注意的是修改完软件名称要先Clean工程,然后卸载原来的App再运行。

InfoDictionary version是版本号,用于发布程序,每次更新的版本号必须比原来的大。

Main storyboard file base name是最主要的storyboard,也可以在BuildSettings里面改,其实BuildSettings里面改的就是plist。(真实名称是有CF前缀的)。

Supported interface orientations是旋转方式。

2.pch文件:其中的内容能被项目中的其他源文件共享和访问。

1.因此可以在内部写一些全局的宏,项目中的其他文件不必包含就可使用。

2.如果整个项目都用某个模型,可以在pch中引入这个模型的头文件。

3.可以开启或者关闭全局的日志输出(通过#define定义新的日志输出函数,发布的时候可以让它为空)。

将NSLog重新定义:__VA_ARGS__是代替...的专用写法,注意两侧的双划线。...代表可以传入无数个参数。

#define MyLog(...) NSLog(__VA_ARGS__)

直接通过Xcode运行的代码,系统会自动定义一个叫DEBUG的宏,因此使用条件编译#ifdef #else #endif来设定日志输出:

#ifdef DEBUG  // 调试阶段
#define MyLog(...) NSLog(__VA_ARGS__)
#else // 发布阶段
#define MyLog(...)
#endif

.m文件都定义了一个宏__OBJC__(注意两侧是双划线),因此要只让.m文件引入,可以如下这样写:

#ifdef __OBJC__
#import <...>
#endif

细节:注意将上面的内容全部包含到__OBJC__中,防止非.m文件访问引起错误。

Tip:.c如果import OC的.h文件,可能会引入@开头的关键词,c语言无法识别,就会报错。

InfoPlist.strings和本地化有关(多语言支持)。

程序的入口是main.m。

几个重要对象:

UIApplication是整个应用程序的象征,每个应用都有自己的UIApplication对象,而且是单例的,即唯一的。

要操作按钮图标(如显示右上角的红色),或者提示用户当前正在联网:

第二个属性开启后在顶部的StatusBar会有联网的提示圆圈,第三个属性是设置应用显示在右上角的数字,0表示不显示。

    UIApplication *app = [UIApplication sharedApplication];
app.networkActivityIndicatorVisible = YES;
app.applicationIconBadgeNumber = 1;

openURL方法可以用于访问资源,会通过浏览器访问:

[app openURL:[NSURL URLWithString:@"http://www.baidu.com"]];

不用自己决定是以什么方式打开。

如果把URL的协议头换成tel://可以拨打电话。

协议:sms是发短信,mailto是发邮件,还可以打开其他app(例如另一个app进行授权登陆)。

从iOS7开始,系统提供了两种方式管理Status Bar,可以通过控制器管理(不同控制器可以有不同的状态栏)。通过UIApplication来管理状态栏,一个App只能有一种状态栏。

默认情况下,iOS7+都是通过控制器来控制Status Bar,Application对象有一系列的UIStatusBarXxx属性来设定,但是iOS7+内这写内容是无效的。

可以通过修改Xxx-Info.plist修改:


View controller-based status bar appearance 键值设置为NO即可。

Application管理StatusBar的好处:可以使用setStatusBarHidden方法设置动画。

Tip:中途改变状态栏应该使用Application来控制。

最新文章

  1. MVC常遇见的几个场景代码分享
  2. 解决Python中不能输入汉字的问题
  3. AOP面向切面编程的四种实现
  4. Ext JS 4 新特性2:配置项属性(config)之一
  5. git分支使用
  6. Scrum Meeting 1-20151201
  7. 使用adb 查询data/data下的数据库
  8. MongoDB 3: 使用中的问题,及其应用场景
  9. netty 粘包问题处理
  10. mysql使用mysqldump导出数据出错
  11. UserManageSys
  12. python环境与PyDev IDE配置
  13. github个人心得和链接
  14. centos Cannot allocate memory for the buffer pool
  15. MVC part4
  16. Educational Codeforces Round 41 (Rated for Div. 2)(A~D)
  17. TOMCA源码分析——处理请求分析(上)
  18. IOS 创建简单表视图
  19. HDU 2239 polya计数 欧拉函数
  20. C# MATLAB混合编程

热门文章

  1. 【移动开发】targetSdkVersion的作用
  2. Linux: Check version info
  3. MacOS下Rails+Nginx+SSL环境的搭建(下)
  4. 分布式服务框架Dubbo
  5. 微信小程序基础之新建的项目文件图解
  6. 通过一个例子了解MapReduce
  7. java.util.Arrays类详解(源码总结)
  8. Android优化之ViewPager的懒加载
  9. 抽屉效果的实现(DrawerLayout和SlidingMenu的对比)
  10. JavaScript介绍-javaScript学习之旅(一)