读书人

IOS学习之十六:开发中的那些琐屑

发布时间: 2012-08-17 02:08:34 作者: rapoo

IOS学习之十六:开发中的那些琐碎

整理了一个多月开发中的一些小问题,当然,本身遇到问题肯定还有更多,

比如类别的一些使用的技巧,协议格式的一些特殊字符,

同步于异步的网络处理的选择,数据的存储选择,类的设计。

因为其实大部分ios互联网应用的技术含量不会是很深奥,基本到后来发现就是对UI控件的一些需熟能生巧的应用,网络编程以及逻辑的处理,

更多的还有是一些经验和积累。

这边是几个早期的问题,也就是一个开发开始一个礼拜中一些问题我还做记载,后面一个月进度匆忙,也就懒于记录

1.UILabel中显示多行时,自动换行。

NSString *postTime;    NSDateFormatter *formatter = [[NSDateFormatteralloc] init];    [formatter setDateFormat:@"YYYYMMddhhmmss"];    postTime = [formatter stringFromDate:[NSDatedate]];

4.巧妙的运用宏,高效的预处理

5.关于版本控制工具Versions:Versions上FileMerger找不到路径的报错问题。

应用会提醒建议重装,说没有安装这个工具,但是在Xcode下我们又是能发现该应用已经装了的。
最后网上查了下说是Xcode版本升级问题,导致应用路径该了,当时versions默认对filemerge路径没改。
把 Xcode 升到 4.3.2 Versions 的文件比功能法使用了。因 Xcode 自 4.3 之後整打包成一App放到了 /Applications 下面,去的 /Developer 整被建除掉了。
Versions 按照原的路法找到 FileMerge.app 所以搞工。理起很,去命令行行
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer

6.项目编译时一种常见格式报错

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ASIHTTPRequest", referenced from:
objc-class-ref in ASIInputStream.o
_OBJC_CLASS_$_ASIFormDataRequest in ASIFormDataRequest.o
objc-class-ref in ASIFormDataRequest.o
objc-class-ref in ASINetworkQueue.o
objc-class-ref in ASIDownloadCache.o
objc-class-ref in NLNetHelper.o
"_OBJC_METACLASS_$_ASIHTTPRequest", referenced from:
_OBJC_METACLASS_$_ASIFormDataRequest in ASIFormDataRequest.o
"_NetworkRequestErrorDomain", referenced from:
-[ASIFormDataRequest addFile:withFileName:andContentType:forKey:] in
这是我们在引入第三方类库文件时,build后错误。比如引入_ASIHTTPRequest和SBJson时。
如果出现以上错误了,比较简单的方法就是。点击项目,--》build Phase s--》compile sources中,点击add后,我们能看到项目下的源文件,此时,建议把你能看到后缀为.m文件全add了~~。
后来发现同事引入时没没什么问题,经提醒发现一个一直被我忽略的问题,就是拖动文件进来时,一般我们是选了非引入而是copy一份,这个没问题,但是下面海域个选矿,addtarget。这个记得勾上,因为关系到项目的一些配置,我估计是就是这个原因。


7.ios客户端于java服务端交互关于null的的问题

在ios网络操作时解析json时,有时会有这样额一种情况: “myThing”:null;
而myThing根据情况分成:1,在有返回的时候是一个字典;2若无内容,返回null。
然后我们在客户端处理是需要判断是佛为null才能来做相应的解析(如果null依旧去解析这个自定则会报错),但是仅仅的一句 if(dic)并不试用。
必须[Dic isEqual: [NSNull null]]

这个其实是指针空于内容空的一种区别。一般来说我们在判断指针空是用nil,而内容空则是NSNull

8.判断字窜A中是否包含字窜B

暂时没找到java中的包含函数
oc提供了一个rangeOfString。然后看length长度。

9.关于ViewController之间交互,数据的传递

在Android我们知道两个Activity之间可以使用bundle来传递,iOS中其实提供了很多解决方法.

但是后来发现最简单的一种就是,我们在第二个ViewController中申明一个这样的属性,

在第第一个ViewController中初始化第二个vc后,设置进去要传递的数据就可以了~

当然,用一个全局或是单例类存放在某些情况下会很合适。


10.NSNotificationCenter的妙用和小技巧

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refeshLogin) name:@"login" object:nil];

消息的注册和监听,以及发送通知调用post发送然后监听处理。

我觉得善用这个类很美妙。

1楼lixing333昨天 21:45
不错,都是小技巧。n我一般在开发的时候,碰到问题解决后,都用麦库记下来;大一点的则写一篇文章记录。n积水成渊,集腋成裘

读书人网 >操作系统

热点推荐