iosios官方开发文档 中文 文档链接 怎么打开

ios开发 文档链接 怎么打开_百度知道
ios开发 文档链接 怎么打开
提问者采纳
(BOOL)application:(NSString *)sourceApplication
annotation:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication
来自团队:
其他类似问题
为您推荐:
ios的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁(window.slotbydup=window.slotbydup || []).push({
id: '2014386',
container: s,
size: '234,60',
display: 'inlay-fix'
&&|&&1次下载&&|&&总128页&&|
开发 iOS 应用程序既有趣又回报丰厚,如果您是一位新手,自然想知道从哪里入手。本路线图提供了
您的计算机尚未安装Flash,点击安装&
如需下载到电脑,请使用积分()
相关分类推荐
0人评价14页
0人评价17页
0人评价13页
0人评价6页
0人评价3页
所需积分:(友情提示:所有文档均可免费全文预览!下载之前请务必先预览阅读,以免误下载造成积分浪费!)
(多个标签用逗号分隔)
文不对题,内容与标题介绍不符
广告内容或内容过于简单
文档乱码或无法正常显示
若此文档涉嫌侵害了您的权利,请参照说明。
评价文档:iOS开发——静态库.a文件开发说明iOS开发——静态库.a文件开发说明
编辑日期: 字体:
最近在做Apple的IOS开发,有开发静态库的需求,本身IOS的开发,只允许静态库或者Framework。在Xcode上没有找到允许编译,如同Android上的*.so和Win32上的dll这样的说法。不过Framework这样的框架,估计也是类似动态库的实现,不过没有具体研究过,后续继续深入研究。我这个文档的静态库的开发是基于Xcode4.2和iOS SDK5.0编写的。Xcode4跟之前的Xcode3还是有不少的差别的。下面就简单写一个静态库和一个调用静态库的例子。静态库的编写:1.静态库工程的建立:Xcode New一个新的project,选择IOS下面的Framework&Library,下面有一个Cocoa Touch Static Library。直接next去建立一个Print这样的工程。2.工程建立我们添加很简单的”- (void)printA;”和”+ (void)printB;”的方法,这个方法的实现也是很简单的,在*.m文件中的实现就是一个”NSLog(@“”);”这样我们编译出来的libstaticlib就可以被其他的IOS工程进行调用了。这块注意一下,目前我们的Print->iOS Device3.编译前准备这里分release与debug版本,需要设置一下4.OK,编译我们可以在Products下面找到我们编译生成的libstaticlib.a这个文件。注意未编译前为红色:左
编译后为黑色: 右
5.ok在右边 这个文件上右键Open In Finder。这时候我们打开了一个文件夹,里面有一个libPrint.a。后面我们继续编写一个调用这个libPrint.a的App。但是这个App在编译时候会出错,通过这个错误的解决,说明Xcode的一些编译相关的东西。这里,我们在command下面根据路径找到这个文件,用这个非常重要的命令查看一下这个lib的信息!打开终端写入如下命令:这是什么?这就是所在的路径以下均是在自己的mac上的路径。你需要将/Users/pjk1129/Library/Developer/Xcode/DerivedData/Print-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products/ 替换成你的路径。cd /Users/pjk1129/Library/Developer/Xcode/DerivedData/Print-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products/我们手动打开这个路径:可以看到如下信息:Release-iphoneos这个是给真机用的,那我们要给模拟器和真机封装的静态库应该都能用才好。这个下面介绍!!!!!然后再在终端 打开这个文件:cd /Users/user/Library/Developer/Xcode/DerivedData/UItab-dbvoszbzpavyglaboxgflvrnzfce/Build/Products/Debug-iphoneos命令是:lipo -info libPrint.a,可以看到显示的结果是:Arch是
Arm7。下面我会具体介绍一下。6.建立一个调用这个libPrint.a的应用应用就很简单了,我们添加刚才libPrint.a的*.h文件。 然后在这个工程的Build Phases的Link Binary With Library里面添加我们刚才拷贝出来的那个libPrint.a。7.插入了h和a文件后我们就可以在control里面调用这个libPrint.a 函数了。#import "AstroDiskAppDelegate.h"
#import "Print.h"
@implementation AstroDiskAppDelegate
@synthesize window = _
- (void)dealloc
[_window release];
[_viewController release];
[super dealloc];
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
//调用libPrint.a
[Print printB];
*print = [[[Print alloc] init] autorelease];
[print printA];
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
[self.window makeKeyAndVisible];
return YES;
}&8.OK,编译运行这个应用程序。编译出现错误了。这个就是这篇文档的关键了。主要就是为了介绍编译静态库相关的东西。9.可以看到undefine symbols for architecture i386这样的错误。其实这个错误原因很简单,就是因为,我们用错了编译出来的libUITab.a lib,在模拟器里面,我们需要的是基于i386构架编译的static lib,但是这个a文件,大家还记得前面说的arm6 arm7构架的么。这个a其实是在iphone这个arm构架上运行的代码。其实show in finder指向的是一个ios device的库,并不是i386模拟器下的库。那如何编译i386的库呢?看见第二张图片的Print>IOS Device了么?我们将这个iOS Device修改成iPhone5.0 Simulator。在进行编译,这样就可以编译出i386下面的库。这个时候我们show in finder打开的文件夹还是ios device下的库。我们最好自己去那个目录下看一下。这里我们用command去查看了一下目录情况,如下:可以看到一个iphoneos的目录和一个simulator的目录。然后我们再看看这个目录与第4条所示的目录有什么不同! 同样也有一个libPrint.a文件。10.错误原因分析Release-iphoneos里面的是基于arm6 arm7编译出来的库文件。Release-iphonesimulator文件夹下面的是基于i386编译出来的文件。11.合并.a文件,制作通用静态库这二个库一个是用于真机运行的一个是用于模拟器运行的.其实我们可以利用lipo将这二个文件打包成一个通用的a文件。命令如下:将/Users/user/Library/Developer/Xcode/DerivedData/UITab-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products替换成你的路径。将/Users/user/Desktop/libPrint.a替换成合并后的路径。lipo -create /Users/pjk1129/Library/Developer/Xcode/DerivedData/Print-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products/Release-iphonesimulator/libPrint.a
/Users/pjk1129/Library/Developer/Xcode/DerivedData/Print-dgfkluumuexoxhcapzidtsmdgqcj/Build/Products/Release-iphoneos/libPrint.a
-output /Users/pjk1129/Desktop/libPrint.a&12.打包以后的库文件,我们查看信息然后打入如下命令:lipo -info /Users/pjk1129/Desktop/libPrint.a可以看到如下信息: 如上,你已经看到了,它具备了i386和arm7的条件。 现在我们这个静态库,支持的构架已经是armv7 i386了。13.ok,经过上述步骤后这个通用库生成后,我们将原来,调用这个库进行替换一下,在进行编译,成功编译,运行结果如下所示:本文固定链接: 转载请注明:
作者:leehom本博客主要是把自己的经验记录于此,方便自己以后查阅及其他遇到类似问题的朋友参考。如果你有觉得不错的文章,可以注册会员发布文章或者邮箱发给我文章地址,谢谢!
如果觉得文章还不错,请麻烦点下广告,算是赞助下本站服务器费用,谢谢!
您可能还会对这些文章感兴趣!iOS的四种方法读取文件内容
int main(int argc, const char * argv[])
@autoreleasepool
//第一种方法: NSFileManager实例方法读取数据
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);
NSString* thepath = [paths lastObject];
thepath = [thepath stringByAppendingPathComponent:@"fd_list.txt"];
NSLog(@"桌面目录:%@", thepath);
NSFileManager* fm = [NSFileManager defaultManager];
NSData* data = [[NSData alloc] init];
data = [fm contentsAtPath:thepath];
NSLog(@"%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
//第二种方法: NSData类方法读取数据
data = [NSData dataWithContentsOfFile:thepath];
NSLog(@"NSData类方法读取的内容是:%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
//第三种方法: NSString类方法读取内容
NSString* content = [NSString stringWithContentsOfFile:thepath encoding:NSUTF8StringEncoding error:nil];
NSLog(@"NSString类方法读取的内容是:\n%@",content);
//第四种方法: NSFileHandle实例方法读取内容
NSFileHandle* fh = [NSFileHandle fileHandleForReadingAtPath:thepath];
data = [fh readDataToEndOfFile];
NSLog(@"NSFileHandle实例读取的内容是:\n%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'

我要回帖

更多关于 ios开发接口文档 的文章

 

随机推荐