iOS开发注意⚠ 持续更新

目录结构:应该以

主目录按照模块分类,内目录按照业务分类


一、轻文档先行

为什么?

1.需求本身就存在问题,代码写一半才发现

2.部分需求没有表达清楚,发现的时候去沟通,结果发现与原来的代码冲突

3.代码写一半时候,思路不清晰了,没有大纲


文档写什么?

1.准备工作

数据库表准备;

抽象出模型类;

  接口协议;

测试环境;

测试帐号;

2.罗列需要做的小功能点

3.记录需求的改动点(非新需求)

4.罗列自测试内容


IOS开发中,经常会遇到NS开头的对象,这个要从乔帮主历史恩怨说起。当年Steve Jobs John Scullery与恩怨,乔帮主当年被人挤兑出苹果,自立门户的时候做了个公司叫做NextStep,里面这一整套开发包很是让一些科学家们喜欢,而现在Mac OS用的就是NextStep这一套函数库。


CF说的是Core FoundationCA说的是Core AnimationCG说的是Core GraphicsUI说的是iPhoneUser Interface


MRC 和 ARC 混编

既可以给ARC 项目添加MRC标记(-fno-objc-arc),也可以给MRC项目添加ARC标记(-fobjc-arc)。


添加pch文件,规则是: 项目名/xxxxx.pch(添加到项目target不是test target)


xcode7 加这个访问网络

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>


现在Xcode 6创建的项目默认是不带pch文件的,当然了旧版本的项目是会保留的。那么如何添加pch文件?

* Command + N 然后在Other里面选择 PCH File

* Build Settings里面找到  Prefix Header


 * 添加pch文件,规则是: 项目名/xxxxx.pch



查看警告类型


注意到其中 [-Wshorten-64-to-32],在这个括号中的就是 这种警告的类型   -W是前缀,这个前缀表示的是 打开这种类型的警告 如果我们是要关闭某种类型的警告的话, 要将 -W换成 -Wno- 


强制去除某一警告

#pragma clang diagnostic ignored

语法来强制去除xcode的编译警告,代码举例如下:

1

2

3

4

#pragma clang diagnostic push

#pragma clang diagnostic ignored "-Warc-bridge-casts-disallowed-in-nonarc"

        CGImageSourceUpdateData(imageSource, (__bridge CFDataRef)imageData, totalSize == expectedSize);

#pragma clang diagnostic pop

注意,如果不添加

#pragma clang diagnostic push/pop

的话,将导致忽略语句一直有效。

要寻找编译器警告类型的方法如下图:




2去除一个源文件内所有某种类型的警告@“第一个是给arc项目添加mrc的文件的标记



3. 去除一个工程中某种类型的警告




//pod加这句话然后install去除警告

inhibit_all_warnings!


pod install --verbose --no-repo-update



po

在调试阶段这个命令非常有用。通常情况下,为了打印变量的值,我们需要移动鼠标指针并点击和选择打印描述打印值。有时候这种做法对编程并不友好,而po命令让这个过程变得简单且迅速 ,看一个示例。

在该示例中,我已经创建了一个命名为str的字符串,并为其赋值。现在要在不移动光标的情况下打印该值,我现在仅需要在输出窗口编写"po variable name"并摁下Enter键。如下所示,你将会得到储存在变量中的值。

1411724496220252.png


一般图片和各种格式的文档用webView加载


warning

当你想要将代码区分为两个类别时可使用该功能,一个为了实验,另一个是实际使用的,比如

 

如果我们将0(zero) 改为1(one),警告会自动删除,如下:

 

该功能将帮你确保你绝不会发布包含不该出现在此的代码,或者排除了应该出现的代码。


block定义

/.h

typedef void(^MyBlock)(int value);

@property (nonatomic,weak) MyBlock block;

-(void)setMyBlock:(void(^)(int value)) block;

/.m

-(void)setMyBlock:(void(^)(int value)) block {

if (block) {

self.block=block;

}

}




// Adding timer to runloop to make sure UI event won't block the timer from firing

_timer = [NSTimer timerWithTimeInterval:timeOffset target:self selector:selector userInfo:nil repeats:YES];

[[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];



解决self循环引用可以这么做

__typeof(self) __weak weakSelf = self;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值