标签:
有一个可变的字符串,必须使用NSMutableString配合其appendString,appendFormat等功能。尤其是appendFormat真的非常实用。
假设你想做替换,stringByReplacingOccurrencesOfString是你的朋友,给你一个新的NSString对象。若是构建文件系统的路径,您能够使用stringByAppendingPathComponent。
像在c++中,基本类型像int不是对象。假设你须要包装在一个对象,您能够使用NSNumber和NSValue ,QVariant(类似)。
据我所知:您能够使用intValue NSNumber或者NSString方法等转换为int类型。
NSArray、NSSet NSDictionary他们听起来像:一个容器来存储NSObjects。NSArray相当于QList,NSSet等于 QSet,还有NSDictionary 类似于QHash / QMap。
您须要使用他们可变泛型改变他们(比如NSMutableArray)。
假设你想存储原始类型,您须要使用NSNumber、NSValue等包装。对于NSArray,您能够通过使用objectAtIndex訪问对象。
NSDictionary,你使用valueForKey或objectForKey。
我没有做太多的关于文件IO方面的,所以我不能过多的写。有NSFileManager文件夹操作。你能够非常easy地读(小)文件通过NSString stringWithContentsOfFile或NSData dataWithContentsOfFile。
记得在OS X和iOS系统都是基于POSIX标准,因此你也能够使用系统的方法得到原始性能或者效率更高。
谈到NSData:这是相当于Qt中QByteArray,可变的泛型,能够看看NSMutableData。
你能够通过数据或訪问mutableData方法得到char *指针。
我认为如今的大多数移动应用程序使用HTTP。在Qt您将使用QNetworkAccessManager。在Objective C,你使用一个NSMutableURLRequest NSURLConnection内(或NSURLRequest)。您须要设置NSURLConnection托付。
托付处理异步事件时产生下载(readyRead信号连接:didReceiveData:完毕信号connectionDidFinishLoading:等)。
假设你想做基于套接字的IO,我仅仅能推荐GCDAsyncSocket。我曾经尝试套接字编程iQuassel项目有几个原因,主要由于你必须使用Carbon取代Cocoa。GCDAsyncSocket也有不错的优势,您能够非常easy地在一个线程中进行网络协议解析,避免堵塞UI线程。
谈到线程:你能够通过使用NSObject 的performSelectorInBackground实现主要的并发性。它使一个方法在后台线程中执行。它能够通过performSelectorOnMainThread传达其结果到主线程。
假设你想做一个Qt-tish 0计时器调用,检查afterDelay: performSelector变异,选择器执行在一个事件循环调用。
很多其它高级先进的东西能够用NSOperationQueue或中央CPU调度。
NSRunLoop相当于Qt中的QEventLoop 。
假设你在还有一个线程处理事情和须要一个事件循环,比如网络IO。
那您能够使用它来处理。
NSUserDefaults是一个非常好的方式来存储和载入应用程序设置(与QSettings相类似)。
不幸的是Obj-c没有类似于于QtXmlPatterns的相关对象。libxml2存在在iOS设备上,因此您能够使用。
对于简单的sax风格的解析,至少有NSXMLParser能够对付。
3.UI Things
XCode有视觉设计师(包括界面构建器),设计师能够设计一个故事板(UIStoryboard)包括大量的视图控制器(UIViewController子类)。
每一个视图控制器管理视图(还记得MVC吗?)。导航视图之间通过演变(UIStoryboardSegue)发生。
您能够通过源视图控制器的prepareForSegue方法在视图控制器之间移动数据。在得到由OS特定事件发生时调用每一个视图控制器类似viewWillAppear等方法。
您使用“outlets”链接与他们的同一在界面构建器UI文件里控件的实例(比如UIButton、UILabel),用CTRL组合键进行拖拽.
Qt的诸多视图和控件,我不做太多与之相应的Obj—C方面的控件的比較。这里就看看UITableView的内容包含使用你的UITableViewDataSource 和UITableViewDelegate。
我想说的差点儿全部的iOS应用程序都会使用表视图。
假设你已经使用过QWebView,换成UIWebView也是一样.
QImage和QPixmap 等同于CGDataProviderRef,NSImage和CGImage.
你能够使用核心图形的方法自己定义画图。UIGraphicsBeginImageContextWithOptions创建一个上下文,您能够使用画图功能。假设你想获得位图的上下文,尝试UIGraphicsGetImageFromCurrentImageContext。
QRect,QPoint是CGRect等价物,CGPoint CGSize。
有助于你调试,检查NSStringFromCGRect和它的朋友们。
对于小部件,注意NS * UI类相应于OS X和UI *类相应于iOS.
4. Misc
当我开发Qt,我使用QtCreator,我的联合创始人奥利弗是KDevelop的粉丝,他也应该非常喜欢QtCreator,对于iOS开发,您能够使用苹果免费的XCode开发工具。
苹果的project师还为您提供一些单元測试类似于Qt的QTest。在XCode,创建一个新的測试类和用法比如:STAssertEquals STAssertTrue等等.
5.Want to know more?
我猜想 Qt的开发人员论坛站点(http://qt-project.org/forums/)就相当于StackOverflow,iOS编程大多数问题在StackOverflow都能够找到答案和帮助。另一个内部苹果开发人员论坛(https://idmsa.apple.com/IDMSWebAuth/login?appIdKey=4a75046cda87eab6386a9eae8caabb9824e328b9abc988119b39296495ec184c&path=/login.jspa)。
当然,假设你Qt应用到iOS不管需要帮助 . 这是Woboq你可以做一件事!麻烦给我们写信.
Objective C (iOS) for Qt C++ Developers(iOS开发,Qt开发人员需要了解什么?)
标签:
原文地址:http://www.cnblogs.com/yxwkf/p/5030961.html