iOS开发实战小知识点(二)

1.计算字符串高度问题

计算字符串高度一般使用两个方法:
1、CGFloat height = [someStr boundingRectWithSize:CGSizeMake(width, MAX_FLOAT) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin attributes:@{ NSFontAttributeName : self.label.font } context:nil].size.height + 5;
这里有两个地方要注意下:1、options参数:一般只需写上面两个就好了,我多加个NSStringDrawingUsesDeviceMetrics参数,在iOS8系统上就异常了。这个参数官方解释:“// Uses image glyph bounds instead of typographic bounds”; 2、计算出来的高度,是文本实际高度,在要加上一个offset值好些。
2、第二个计算方法:
CGSize size = [self.label sizeThatFits:CGSizeMake(width, MAX_FLOAT)]; CGFloat height = size.height;
这个方法计算出来的高度直接可以使用。 很少用这个方法,同事说这个方法好点。官方给出的解释:“ // return 'best' size to fit given size. does not actually resize view. Default is return existing view size。”

2.单例的使用

全局使用某一个变量,随时修改随时访问拿到最新的值,使用单例的一个属性即可。用的NSUserDefault,也是可以的。

3.提交市场安装包问题

为了更好测试线上包无BUG,测试让把发布的包给他们安装一下。出现问题了:一直安装失败。想了好久才记起,release包不可以直接安装到手机上。具体见下图:

iOS开发实战小知识点(二)_第1张图片
release导出.png

注意:1、提交市场要选 第一行导出IPA包,然后可以使用Application Loader上次到市场;也是直接验证通过上传到市场(先Validate通过后,在Upload to App Store)。

iOS开发实战小知识点(二)_第2张图片
先验证在上传.png

2、要想把release发布的包在安装测试下,要选第二行Ad Hoc 那个,用第一个导出的包是安装不成功的。
3、第三行是企业证书导出包,供内部测试使用,是不可以上传到App Store的。
4、第四行是Debug模式开发环境下导出安装包进行测试用的。

你可能感兴趣的:(iOS开发实战小知识点(二))