iOS开发之十万个为什么<1>
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。
假设文章对您有所帮助。欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^
我要捐赠: 点击捐赠
Cocos2d-X源代码下载:点我传送
游戏官方下载:
http://dwz.cn/RwTjl
游戏视频预览:
http://dwz.cn/RzHHd
游戏开发博客:
http://dwz.cn/RzJzI
游戏源代码传送:
http://dwz.cn/Nret1
1、设置 ImagePicker 的大小
ImagePicker 在 Popover Controller 总是以默认大小显示,设置 popoverContentSize 属性似乎无用。
解决的方法是将ImagePicker “包括”到一个定制的 ViewController 中,然后再 presentPopover 这个 ViewController :
UIViewController *containerController = [[UIViewController alloc] init];
containerController.contentSizeForViewInPopover = CGSizeMake(600,self.view.frame.size.height);
[containerController.viewaddSubview:_imagePicker.view];
_popController= [[UIPopoverController alloc] initWithContentViewController:containerController];
CGPoint p=[self.view convertPoint:button.center
fromView:sender.superview];
[_popController presentPopoverFromRect:(CGRect){p,CGSizeZero}
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
[_imagePicker.view setFrame:containerController.view.frame];// 非常重要
注意,popover的宽度最多600。
此外。_imagePicker 每次 presentPopoverFromRect 之前都必须 init一次。否则显示位置不对。
2、上传文件里文文件名称乱码问题
在iOSclient将文件名称用URL Encode编码。然后在服务端用URL Decode解码。
client:
NSStringEncodingenc=NSUTF8StringEncoding;
[request setData:datawithFileName [filename stringByAddingPercentEscapesUsingEncoding:enc]
andContentType:@"application/octet-stream" forKey:key];
服务端:
String filename=request.getParameter(“upload_file”);
filename=URLDecode.decode(s,”utf-8”);
3、Mac 64 bit Device
有时从SVN更新project后。Scheme会显示为Mac 64 bit Device,而且不同意执行程序。
这时仅仅须要又一次设置一下Target的DeploymentTarget就好(设置为模拟器或调试设备)。
4、去除调试程序的NSLog
编译參数Optimize Level依据不同的版本号设置。
比如对于Debug版本号是None。对于Release版本号是Fastest,Smallest。
这样,我们能够依据这个參数来又一次定义NSLog函数:
#ifndef __OPTIMIZE__
#define NSLog(...)NSLog(__VA_ARGS__)
#else
#define NSLog(...) {}
#endif
5、警告:no previous prototye for function
依据c规范。 假设函数没有參数。使用void作为函数參数。
函数声明应使用 “void functionA(void);”,而不能是”void functionA();”。
6、数组排序
方法一:
- (NSComparisonResult)compare:(Person *)otherObject {
return [self.birthDatecompare:otherObject.birthDate];
}
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(compare:)];
方法二:
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc]initWithKey:@"birthDate"
ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingDescriptors:sortDescriptors];
方法三( 10.6+):
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingComparator:^(id a, id b) {
NSDate *first =[(Person*)a birthDate];
NSDate *second =[(Person*)b birthDate];
return [firstcompare:second];
}];
7、Xcode 4的build文件夹在哪里?
Xcode 4 做了很多改变。你将不能找到build文件夹,你也无法找到Products文件组。
那么它把项目编译后生成的可执行文件放在哪里了呢?
答案就是“{USERNAME}/Library/Developer/Xcode/DerivedData/{PROJECT_NAME_AND_RANDOM_CRAP}/Build/Products/{BUILD_TYPE}/{PROJECT_NAME}.app”文件夹。
8、警告:no rule to process file
Xcode试图侦測每一种文件的类型。
当它觉得文件属于“源文件”类型(比方.js文件),
总是试图将它加到 Compile Sources中并试图编译。
解决这个警告的办法是。把这类文件从Build Phases的 Compile Sources移到 Copy Bundle Resources中。
9、警告:'initWithFrame:reuseIdentifier:'is deprecated
该方法在兴许版本号中将被抛弃。
请使用
- initWithStyle:reuseIdentifier:
10、itms-services不工作
itms-services 被apple/iphone识别为一个特殊的字眼。它会校验provisioning profile中指定的证书并进行安装。
在安装这个.ipa文件前,要校验profisioning profile,这会连接到 "ax.init.itunes.apple.com"和 "ocsp.apple.com"。
假设你处于intranet中,请检查是否可訪问上述地址。
假设不能,你将无法使用OTA来安装应用程序。要求iOS 4.0以上。
注:上述地址不能訪问并不会影响安装。可是iOS会在执行时通过上述地址检查证书是否合法,假设安装是合法的,iOS会缓存检查结果(7天)。
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。
假设文章对您有所帮助,欢迎给作者捐赠。支持郝萌主。捐赠数额任意,重在心意^_^
我要捐赠: 点击捐赠
Cocos2d-X源代码下载:点我传送
游戏官方下载:
http://dwz.cn/RwTjl
游戏视频预览:
http://dwz.cn/RzHHd
游戏开发博客:
http://dwz.cn/RzJzI
游戏源代码传送:
http://dwz.cn/Nret1
iOS开发之十万个为什么<1>的更多相关文章
- 如果你恨一个程序员 忽悠他去做iOS开发(戏谑篇)
.state { text-align: right; height: 16px; line-height: 16px; color: #999; padding-top: 5px; overflow ...
- 如果你恨一个程序员,忽悠他去做iOS开发
如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...
- 如果恨一个程序员,忽悠他去做iOS开发
如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...
- iOS 开发技术栈与进阶
最近有一些开发朋友问我应该怎样提升自己的能力,回想起来做了这么久 iOS 开发,我也有过那种“让我做一个功能实现个需求我会做,但接下来怎样提高我不知道.”的时期,这里尝试列一下 iOS 开发的相关技术 ...
- iOS开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...
- iOS开发系列--打造自己的“美图秀秀”
--绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...
- iOS开发之再探多线程编程:Grand Central Dispatch详解
Swift3.0相关代码已在github上更新.之前关于iOS开发多线程的内容发布过一篇博客,其中介绍了NSThread.操作队列以及GCD,介绍的不够深入.今天就以GCD为主题来全面的总结一下GCD ...
- 总结iOS开发中的断点续传那些事儿
前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...
- iOS开发系列文章(持续更新……)
iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大 ...
随机推荐
- mysqli简介
mysqli简介 PHP MySQLi 简介 PHP MySQLi = PHP MySQL Improved! MySQLi 函数允许您访问 MySQL 数据库服务器. 注释:MySQLi 扩展被设计 ...
- java 中的静态(static)代码块
类字面常量 final 静态域不会触发类的初始化操作 非 final static 静态域(以及构造器其实是一种隐式的静态方法) Class.forName():会自动的初始化: 使用 .class来 ...
- [SCOI 2005] 栅栏
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1082 [算法] 首先二分“最多得到的符合条件的木板数”,检验时可以使用DFS,但是, ...
- 利用CSS3中的clac()实现按照屏幕分辨率自适应宽度
1.简介 calc()看其外表像个函数.平时在制作页面的时候,总会碰到有的元素是100%的宽度(例如body元素).如果元素宽度为100%时,其自身不带其他盒模型属性设置还好,要是有别的,那将导致盒子 ...
- ubuntu 使用阿里云 apt 源
以下内容来自 https://opsx.alibaba.com/mirror Ubuntu对应的“帮助”信息 修改方式:打开 /et/apt/sources.list 将http://archive. ...
- python初始面向对象
阅读目录 楔子 面向过程vs面向对象 初识面向对象 类的相关知识 对象的相关知识 对象之间的交互 类命名空间与对象.实例的命名空间 类的组合用法 初识面向对象小结 面向对象的三大特性 继承 多态 封装 ...
- python中is与==的差别
# is:比较的是两个对象的id值是否相等,# 也就是比较俩对象是否为同一个实例对象,# 是否指向同一个内存地址 # s = "alex"# abc = id(s) # 得到内存地 ...
- PHP日期和时间处理组件-Carbon
https://packagist.org/packages/nesbot/carbon 我们使用PHP时经常需要处理日期和时间,有时会被时间时区搞混淆,而Carbon是PHP中很人性化的时间日期处理 ...
- 对ListView的Item子控件监听并跳转页面
public class MyAdapteforOwner extends BaseAdapter{ List<OwnerDevice>datas; private Context con ...
- Java 自带MD5 校验文件
http://www.iteye.com/topic/1127319 前天第一次发表博客到论坛,关于Java文件监控一文,帖子地址在:http://www.iteye.com/topic/112728 ...