浅析SuperMap iMobile 8C for iOS打包静态库

2023-10-24 06:20

本文主要是介绍浅析SuperMap iMobile 8C for iOS打包静态库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:为梦齐舞

      近段时间,有客户咨询如何将超图的库打包成静态库,然后到项目中进行使用,在这里小编做一个简单的介绍,本文中将介绍如何打包静态库,并在也使用超图的库进行调用静态库。
      一、新建静态库工程Cocoa Touch Static Library
这里写图片描述
      二、命名工程为supermapLib
这里写图片描述
      三、设置Search Paths路径
        1、设置头文件路径Header Search Paths:安装目录/SDKs/iPhoneOS.sdk/SuperMap.framework/Versions/A/Headers
        2、设置动态库路径Library Search Paths:安装目录/SDKs/iPhoneOS.sdk/SuperMap.framework/Versions/A

      四、在静态库工程中编写代码
            1、supermapLib.h文件中

#import <Foundation/Foundation.h>
@class Workspace;
@interface supermapLib : NSObject
{Workspace *workspace;
}
-(Workspace*)openWorkspace;
@end

            2、supermapLib.m文件中

#import "supermapLib.h"
#import "SuperMap.h"
@implementation supermapLib
-(Workspace*)openWorkspace
{@try{workspace=[[Workspace alloc]init];DatasourceConnectionInfo *info=[[DatasourceConnectionInfo alloc]init];info.engineType=ET_BAIDU;info.server=@"http://map.baidu.com";[workspace.datasources open:info];return workspace;}@catch (NSException *exception) {}}
@end

      五、编译工程,会生成一个libsupermaplib.a的静态库包和include头文件。
这里写图片描述
      六、新建一个Single View Application工程来测试静态库,命名为SmLibTest,按照SuperMap要求的工程配置进行配置,添加libstdc++.6.0.9.tbd库;其中SuperMap.framework不需要再添加到工程中,SuperMap.bundle资源依然需要放置到工程中。
      七、将libsupermaplib静态库include头文件以及SuperMap的头文件加入到工程中。
这里写图片描述
      八、将生成的libsupermaplib.a的静态库加入到工程中,并拖拽到工程中。
这里写图片描述
      九、在SmLibTest中添加如下代码
            1、ViewController.h文件中

#import <UIKit/UIKit.h>
#import <SuperMap.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet MapControl *mapControl;
@end 

            2、ViewController.m文件中

#import "ViewController.h"
#import "supermapLib.h"
@implementation ViewController
@synthesize mapControl;
- (void)viewDidLoad {[super viewDidLoad];[self openMap];// Do any additional setup after loading the view, typically from a nib.
}
-(void)openMap
{mapControl=[[MapControl alloc]initWithFrame:[[UIScreen mainScreen]bounds]];[self.view addSubview:mapControl];[mapControl mapControlInit];supermapLib *superlib=[[supermapLib alloc]init];Workspace *workspace=[superlib openWorkspace];[mapControl.map setWorkspace:workspace];Datasource* baiduDatasource=[workspace.datasources get:0];[mapControl.map.layers addDataset:[baiduDatasource.datasets get:0] ToHead:NO];  
}

      十、编译运行程序,效果如下图所示
这里写图片描述

这篇关于浅析SuperMap iMobile 8C for iOS打包静态库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/supermapsupport/article/details/53066788
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/273260

相关文章

Maven项目打包时添加本地Jar包的操作步骤

《Maven项目打包时添加本地Jar包的操作步骤》在Maven项目开发中,我们经常会遇到需要引入本地Jar包的场景,比如使用未发布到中央仓库的第三方库或者处理版本冲突的依赖项,本文将详细介绍如何通过M... 目录一、适用场景说明​二、核心操作命令​1. 命令格式解析​2. 实战案例演示​三、项目配置步骤​1

浅析Java如何保护敏感数据

《浅析Java如何保护敏感数据》在当今数字化时代,数据安全成为了软件开发中至关重要的课题,本文将深入探讨Java安全领域,聚焦于敏感数据保护的策略与实践,感兴趣的小伙伴可以了解下... 目录一、Java 安全的重要性二、敏感数据加密技术(一)对称加密(二)非对称加密三、敏感数据的访问控制(一)基于角色的访问

Spring Boot项目打包和运行的操作方法

《SpringBoot项目打包和运行的操作方法》SpringBoot应用内嵌了Web服务器,所以基于SpringBoot开发的web应用也可以独立运行,无须部署到其他Web服务器中,下面以打包dem... 目录一、打包为JAR包并运行1.打包为可执行的 JAR 包2.运行 JAR 包二、打包为WAR包并运行

Python将字库文件打包成可执行文件的常见方法

《Python将字库文件打包成可执行文件的常见方法》在Python打包时,如果你想将字库文件一起打包成一个可执行文件,有几种常见的方法,具体取决于你使用的打包工具,下面就跟随小编一起了解下具体的实现方... 目录使用 PyInstaller基本方法 - 使用 --add-data 参数使用 spec 文件(

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte