有关开发经验的几个问题

---------------------------------我是帅气的标题栏【结尾有彩蛋,彩蛋】-----------------------------------------------------

首先是UI方面,关于应用中的国际化问题: 设置中英文的切换。这一块基本上就是创建一个新的文件类型1、File-> New-> flie->Resource->Strings File,新建一个Strings File类型的文件,有一个需要注意的地方,就是这个文件的命名必须是Localizable,因为Xcode寻找国际化的内容就是根据Localizable文件来查找的,2、点击创建的文件并在Xcode右侧的控制面板中点击Localize..按钮,启用国际化 3、在PROJECT中Info选项卡下面对应的Loacalization添加相应的语言即可。4、添加完语言后,在Localizable会出现对应的语言文件,这样就直接在文件中编写软件里涉及到的字符就可以了。 例如 :“OK” = "确定"; [说明一点,结尾的分号不要忘记]  5、以上就是配置方面的,下面就是使用了: 使用里面的字符,只需要使用NSLocalizedString(..,..)就可以了,例如:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"WARING", nil) message:NSLocalizedString(@"NetworkConnectError", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"CANCEL", nil) otherButtonTitles:NSLocalizedString(@"OK", nil), nil];
[alert show];

这样,应用的国际化就配置完成了。

--------------------------------------我是华丽的分割线 ------------------------------------------------------------------

关于程序的调试 : 一般采用“断点调试”很普遍,采用NSLog的打印输出也不在少少数,毕竟这个更方便一些。但是程序中涉及到大量的输出语句,使得应用存在一种潜在的风险,所以我们可以采用这种打印方式,更好的控制调试的方法最大化的减少调试对程序的影响。

1.#ifdef DEBUG
2.#define DMLog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
3.#else
4.#define DMLog(...) do { } while (0)

这样如果你使用DMLog,那么它只能在debug build期间打印。__PRETTY_FUNCTION__ 也可以帮忙打印出log所在的函数的名称。

-------------------------------------------------还是我,我还是华丽的分割线----------------------------------------------------

一般应用托管到蒲公英打包上传时选择的是Save for Enterprise Deployment的打包方式,然后导出[Export],切记,上传蒲公英的应用不能采用直接把包拖进iTunes里面然后再拖出来获得ipa包,通俗的说这时候的包是用来上线 Apple Store而不是用来测试的,蒲公英是一个测试平台,对上传的这个包是安装不了的。

-------------------------------------------------低调秀气的分割线----------------------------------------------------------

在OC中懒加载是使用广泛的,而在Swift2.0 中要使用关键字进行声明,直接上代码吧:

    lazy var applicationDocumentsDirectory: NSURL = {
        // The directory the application uses to store the Core Data store file. This code uses a directory named "lalala.ServiceShop" in the application‘s documents Application Support directory.
        let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
        return urls[urls.count-1]
    }()

在切换视图的主界面

                let app = UIApplication.sharedApplication().delegate as! AppDelegate
                app.createTabBarView()

----------------------------------------------------

下拉菜单实现原理

设置一个tableView ,底部可以是一个透明的view,上面加上一个imageview,背景图片可以设置成那种带尖角的,ps处理;然后加上一个tableview,同样设置透明,tablecell可以自定义。

关于3DTouch【针对的是图标的点击和界面的跳转】

主要是涉及到界面的跳转,我主要是采用通知的方式进行的界面跳转,在程序的根视图【父类】,里面注册通知,在相应的界面里面进行界面的切换和调用即可【注意点: 界面切换时候注意延迟的使用,因为有时候界面还未创建就进行跳转是达不到目标的效果的】

关于网络请求的https的问题,从Xcode7开始默认使用的是https所以在info.plist文件中配置一下即可:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

-------------------我又来啦-------------------------------

关于出现的一个很**的错误提示

“Certificate identity ‘iPhone Developer: xxxx ho (2J123456HA)‘ appears more than once in the keychain. The codesign tool requires there only be one.”

这时候你的你的内心是拒绝的,已经到了最后一步了就出现了这个问题,相死的心估计都有了,但是慢慢来,分析一下就能知道

其实这个的原因是keychain access中存在过期的‘iPhone Distribution: xxxx‘,但没有显示在钥匙链/登录中,而是在钥匙链/系统中,并且是隐藏的,因此需要在钥匙链->显示->显示过期证书,然后把钥匙链下的登录和系统的过期证书都删掉。

而且我在搜寻答案的时候,看到一篇帖子,有可能删除过期证书失败,但是在keychain里面却显示删除成功,这个问题的解决方法是重启keychain,删除,重复这个过程直到真正删除成功。

有时候在keychain里面找不到已过期、多余的证书,但我们在xcode的target的building setting的code signing里面却能够看到多余的证书,这个就证明我们的keychain并没有清楚干净。

总结,解决这个问题的步骤是:1.清掉keychain里面多余的证书。2.刷新xcode里面的provisioning profile。

-----------------------我是彩蛋?【oh, NO】-------------------------

关于应用崩溃后如何看崩溃的信息,一般我们会收到一些崩溃的事例

// 2: 基本信息
Date/Time:
OS Version:
Report Version:
// 3: 异常
Exception Type:
Exception Codes:
Highlighted Thread:
// 4: 线程回溯
Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0:

Thread 1:
// 5: 线程状态
Thread 0 crashed with ARM Thread State (32-bit):
// 6: 二进制映像
Binary Images:
(1) 进程信息
是闪退进程的相关信息。
Incident Identifier是崩溃报告的唯一标识符。
CrashReporter Key 是与设备标识相对应的唯一键值。
Hardware Model 标识设备类型。
Process 是应用名称。
(2) 基本信息
这部分给出了一些基本信息,包括闪退发生的日期和时间
(3) 异常
在这部分,你可以看到闪退发生时抛出的异常类型。还能看到异常编码和抛出异常的线程
(4) 线程回溯
这部分提供应用中所有线程的回溯日志。 回溯是闪退发生时所有活动帧清单。
二进制库的名称
调用方法的地址
(5) 线程状态
这部分是闪退时寄存器中的值。一般不需要这部分的信息,因为回溯部分的信息已经足够让你找出问题所在。
(6) 二进制映像
这部分列出了闪退时已经加载的二进制文件。
通过查看这些内容就能获取完整的错误信息了,从而定位到错误的所在。

-------------------彩蛋来喽-----------------------

附一个软件大全的网址:http://www.sdifenzhou.com/category/black-apple/apple-software/page/6/

转载请附链接:http://www.cnblogs.com/windsSunShine/p/5869465.html

【个人看法,不喜勿喷】

 

时间: 2024-08-06 07:53:22

有关开发经验的几个问题的相关文章

react-native开发经验

# **RN开发经验** ## 一.环境配置关于环境配置,前辈已有完整的总结:http://tvrn.devops.letv.com/docs/Environment.html **IDE准备:** [AndroidStudio](https://developer.android.com/studio/index.html),[VisualStudioCode](https://code.visualstudio.com/) 如何打造现代化RN开发环境:http://tvrn.devops.l

十八年开发经验分享(07)递归程序设计

这篇谈谈递归程序设计的问题.从取名上来说是想刻意区别内容的侧重点不同.上一篇是构造,其重点是从递归程序的自身结构出发,试图用一种比较直观的方法来完成递归程序的构造.这篇的重点是设计,其中的区别在于,这次是从问题本身的结构出发来完成递归程序的开发任务.上一篇中介绍的方法,比较简单直观,八股文的意味非常浓郁,并且还有一个比较大的缺点,那就是在实际使用时往往会受制与方法本身而不能解决有一定难度的问题.实际上递归是一种客观存在的现象,递归的描述问题是对客观世界的一种认识.本文从对问题的认识,描述和分析这

chrome浏览器插件开发经验(一)

chrome浏览器插件开发经验(一) 最近在进行chrome浏览器插件的开发,一些小的经验总结随笔. 1.首先,推荐360的chrome插件开发文档:http://open.chrome.360.cn/extension_dev/overview.html 2.从chrome18开始往后,chrome浏览器插件开发的 manifest.json 文件中的 "manifest_version": 2 属性就必须被显式(固定)的声明了. 3.chrome插件开发,很大程度上需要chrome

开发经验分享(一)

开发经验分享系列文章主要记录工作实际项目中遇到的问题和解决办法,希望能对大家有参考意义. 一.芯片的地址分配和变量地址的指定 芯片的存储区很小,所以要合理利用存储区,在进行地址空间的分配时就需要一定的技巧. 在进行开发时,一定要做好地址的划分. 比如CODE区的0x0000~0x8000作为COS区,接下来的0x8000~0x10000作为文件系统区,依次类推…… 在定义变量的时候,也要注意定义在了什么位置,占用的空间有多大. 比如,我们在XRAM区定义变量和数组: xdata char tem

java项目开发经验总结,值得收藏!绝对有用!

Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1.掌握项目开发的基本步骤2.具备极强的面向对象的分析与设计技巧3.掌握用例驱动.以架构为核心的主流开发方法 没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法! 关于基

让你提前认识软件开发---学长的软件开发经验总结(19)

第1部分 重新认识C语言 C语言中的协议及单元测试示例 [文章摘要] 在实际的软件开发项目中,经常要实现多个模块之间的通信,这就需要大家约定好相互之间的通信协议,各自按照协议来收发和解析消息. 本文以实际的程序代码为例,详细介绍了如何用C语言来实现通信协议,并基于对协议字段的判断,说明了程序单元测试的过程,为相关的开发工作提供了有益的参考. [关键词] 软件开发  协议  单元测试  C语言  字段 一.软件模块之间的协议 什么是软件模块之间的协议?不同的软件模块之间要实现相互通信,就必须遵循共

让你提前认识软件开发---学长的软件开发经验总结(18)

第1部分 重新认识C语言 C语言中常用的文件操作函数总结及使用方法演示代码 在C语言中,有关文件操作的函数多达数十种,但并非每个函数都经常会被用到.        本文对实际软件开发项目中常用的C文件操作函数的用法进行了总结,并用实际的C代码来演示了它们的用法. 1. C语言中常用的文件操作函数总结 (1) fopen 作用:打开文件. 表头文件:#include <stdio.h> 定义函数:FILE *fopen(const char *path, const char *mode); 函

web移动端开发经验总结

整理web移动端开发经验,部分内容借鉴于网上的博文. 1.meta标签 <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0;" /> <!-- width可视宽度,initial-scale初始化缩放比例,maximum-scale允许用户缩放的最大比例,minimum-scale允许用户缩放的最小

iOS 开发经验总结

iOS 开发经验总结http://www.cocoachina.com/ios/20170216/18699.html 1.cocoa pods 常用的framework 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 platform :ios, '7.0' target 'store' do pod 'AFNetworking', '~> 3.1.0' pod 'JSONKit', '~> 1.5pre' pod 'MBPr

三年以上php开发经验常见面试题

一般有三年以上php开发经验去百度.腾讯面试,常会接触的面试题小总结一下: 0.简单做一下自我介绍,? 然后谈一下近三年来你的得意之作? 1.面试官看过你的简历,会问一些你做的项目的用户量.pv.吞吐量.相关难点和解决方法等 2.数据库设计经验,为什么进行分表? 分库? 一般多少数据量开始分表? 分库? 分库分表的目的? 什么是数据库垂直拆分? 水平拆分? 分区等等?可以举例说明 3.数据库优化有哪些? 分别需要注意什么? 4.web开发方面会遇到哪些缓存? 分别如何优化? 5.给你256M的内