当前位置: 首页 > news >正文

宝鸡品牌网站开发公司百度搜索引擎广告投放

宝鸡品牌网站开发公司,百度搜索引擎广告投放,品牌羽绒服排名前十,东莞政府网站建设一:简介 XPC 是 macOS 里苹果官方比较推荐和安全的的进程间通信机制。 集成流程简单,但是比较绕。 主要需要集成 XPC Server 这个模块,这个模块最终会被 apple 的根进程 launchd 管理和以独立进程的方法唤起和关闭, 我们主app 进…

一:简介

XPCmacOS 里苹果官方比较推荐和安全的的进程间通信机制。
集成流程简单,但是比较绕。

  • 主要需要集成 XPC Server 这个模块,这个模块最终会被 apple 的根进程 launchd 管理和以独立进程的方法唤起和关闭, 我们主app 进程并不需要管理这个进程的生命周期。

  • 特点:主要做权限分离和错误隔离使用,使用独立进程的方法,可以避免独立进程crash影响到主进程, 而且独立进程可以和主进程赋予不同的权限,比如是否沙盒,是否有网络权限等。

  • find /System/Library/Frameworks -name \*.xpc 命令可以查看系统使用的xpc服务。

  • 下面一张官方图,说明了对应的关系。
    UI App 作为 client 端,只要去监听对应的XPC 服务, launchd 就会拉起对应的 XPC Server
    XPC Server 作为 服务端,提供xpc服务,并接受client的消息。
    两者之间通过protocol 的方式进行互相调用,解耦。

在这里插入图片描述

  • 下面demo app的数据流向

请添加图片描述

二:创建流程

  1. 创建主进程UI app
    在这里插入图片描述
  2. 配置ui app的名字为 XpcApp.
    在这里插入图片描述
  3. 按照步骤给 app 以添加target 的方式添加xpc 模块。
    在这里插入图片描述
  4. 创建Xpc server 的名字为: XpcServer,
    api 选择OC 接口的api,而不是C接口的版本
    最后一项内嵌到UI APP中,最终运行打包后,会在XpcApp.app/Contents/XPCServices/XpcServer.xpc路径里面找到它。
    在这里插入图片描述
  5. 最终的项目架构如下,
    XpcApp 包含两个文件夹,分别为 UI和xpcserver的文件夹,
    对应两个target。
    在这里插入图片描述

三:demo 运行

  1. 由于XpcServer里面官方已经给了demo 足够运行的代码,我们可以不用添加任何代码就可以运行。
    我们在XpcServer.m 里面添加个 log 作为调试输出就行。
    这里只加了一句log输出,会在server 收到 ui app 传递来的消息的时候打印,并将收到的两个数字相加后返回。
// This implements the example protocol. Replace the body of this class with the implementation of this service's protocol.
- (void)performCalculationWithNumber:(NSNumber *)firstNumber andNumber:(NSNumber *)secondNumber withReply:(void (^)(NSNumber *))reply {NSInteger result = firstNumber.integerValue + secondNumber.integerValue;NSLog(@"server 收到 UI Clicent App的两个数字: %@, %@", firstNumber, secondNumber);reply(@(result));
}
  1. 配置UI App 文件。
    这里的代码调用方法可以参考XCode自动生成的XpcServerProtocol.h文件里面的注释,里面说明了怎么在Client 端发送消息。
    ViewController.m 中,替换成如下代码:
#import "ViewController.h"
#import "XpcServerProtocol.h"
#import "XpcServer.h"@interface ViewController ()
@property (nonatomic, strong) NSXPCConnection *xpcConnect;
@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];self.xpcConnect =  [[NSXPCConnection alloc] initWithServiceName:@"com.jimbo.xpc.XpcServer"];NSXPCInterface *interface = [NSXPCInterface interfaceWithProtocol:@protocol(XpcServerProtocol)];self.xpcConnect.remoteObjectInterface = interface;[self.xpcConnect resume];
}- (IBAction)sendMsgClick:(id)sender {NSLog(@"ui app 发送数字 231, 119");[[self.xpcConnect remoteObjectProxy] performCalculationWithNumber:@231 andNumber:@119 withReply:^(NSNumber *reply) {// We have received a response.NSLog(@"ui 收到了 xpc server 返回的数字: %@", reply);}];
}- (void)dealloc {[self.xpcConnect  invalidate];
}@end
  1. 在storyboard 中添加个button,绑定到上面的 - (IBAction)sendMsgClick:(id)sender方法中。
  2. 运行
    点击button 后,关注 app的控制台
    在这里插入图片描述
    xpc server 的控制台
    在这里插入图片描述
    两个进程都有打印消息,说明通讯成功。

四:备注

  1. demo中传递消息用的protocol里面的方法(performCalculationWithNumber: andNumber: withReply:)只是官方默认提供的,根据实际需要也可以添加其他方法,比如传递字符串,json等。
  2. 自己的xpc server 是内嵌到 app 包里的,默认只能有自己的app包的主程序进行调用,如果需要让其他app 进行通信调用,需要创建 launchd.plist 然后拷贝到系统路径下的.../LaunchDaemons文件夹。
    具体可以参考 man launchd.plist
  3. 两个进程都可以互相主动发消息的,只是demo没有添加对应的代码。

文章转载自:
http://dinncoditcher.stkw.cn
http://dinncohhfa.stkw.cn
http://dinncounture.stkw.cn
http://dinncobillingual.stkw.cn
http://dinncotribromide.stkw.cn
http://dinncogmt.stkw.cn
http://dinncouniversal.stkw.cn
http://dinncolackaday.stkw.cn
http://dinncosalomonian.stkw.cn
http://dinnconomism.stkw.cn
http://dinncodappled.stkw.cn
http://dinncostratigraphical.stkw.cn
http://dinncosubsume.stkw.cn
http://dinncovivacity.stkw.cn
http://dinncoteleferique.stkw.cn
http://dinncointegrate.stkw.cn
http://dinncocommute.stkw.cn
http://dinncocarbineer.stkw.cn
http://dinncometacinnabarite.stkw.cn
http://dinncoschnorrer.stkw.cn
http://dinncothermolabile.stkw.cn
http://dinncoasia.stkw.cn
http://dinnconovel.stkw.cn
http://dinncotinkal.stkw.cn
http://dinncodisfigure.stkw.cn
http://dinncoturning.stkw.cn
http://dinncoqueenright.stkw.cn
http://dinncoconclave.stkw.cn
http://dinncocumbric.stkw.cn
http://dinncofourscore.stkw.cn
http://dinncophooey.stkw.cn
http://dinncodisappreciation.stkw.cn
http://dinncoyoke.stkw.cn
http://dinncosubdivide.stkw.cn
http://dinncoharquebuss.stkw.cn
http://dinncouncorruptible.stkw.cn
http://dinncocubbing.stkw.cn
http://dinncobluffness.stkw.cn
http://dinncotint.stkw.cn
http://dinncobutcherly.stkw.cn
http://dinncobaciamano.stkw.cn
http://dinncowidukind.stkw.cn
http://dinncorheophyte.stkw.cn
http://dinncocanis.stkw.cn
http://dinncounjustly.stkw.cn
http://dinncotillage.stkw.cn
http://dinncodyewood.stkw.cn
http://dinncolanthanum.stkw.cn
http://dinncocaliban.stkw.cn
http://dinncocurvaceous.stkw.cn
http://dinncodisemplane.stkw.cn
http://dinncorollman.stkw.cn
http://dinncosowbug.stkw.cn
http://dinncocablephoto.stkw.cn
http://dinncosynoil.stkw.cn
http://dinncohesperinos.stkw.cn
http://dinncomilliliter.stkw.cn
http://dinncotranscendental.stkw.cn
http://dinncotenability.stkw.cn
http://dinncokiddo.stkw.cn
http://dinncoheadachy.stkw.cn
http://dinncotelediphone.stkw.cn
http://dinncolabialized.stkw.cn
http://dinncotheomania.stkw.cn
http://dinncounmentionable.stkw.cn
http://dinncoquotient.stkw.cn
http://dinncoicc.stkw.cn
http://dinncolawks.stkw.cn
http://dinncoargument.stkw.cn
http://dinncoepigenous.stkw.cn
http://dinncoaborative.stkw.cn
http://dinncoflying.stkw.cn
http://dinncohypoploidy.stkw.cn
http://dinncoextrude.stkw.cn
http://dinncotnb.stkw.cn
http://dinncoceremonially.stkw.cn
http://dinncofloss.stkw.cn
http://dinncoportulaca.stkw.cn
http://dinncocounterproof.stkw.cn
http://dinncoglede.stkw.cn
http://dinncotangelo.stkw.cn
http://dinncofondly.stkw.cn
http://dinncoolga.stkw.cn
http://dinncocathexis.stkw.cn
http://dinncobengalese.stkw.cn
http://dinncoserena.stkw.cn
http://dinncospiderling.stkw.cn
http://dinncosymantec.stkw.cn
http://dinncoexheredate.stkw.cn
http://dinncocardiomegaly.stkw.cn
http://dinncorerecording.stkw.cn
http://dinncoless.stkw.cn
http://dinncounderdo.stkw.cn
http://dinncoremasticate.stkw.cn
http://dinncogaddi.stkw.cn
http://dinncoserotinous.stkw.cn
http://dinncorevenant.stkw.cn
http://dinncobuckbean.stkw.cn
http://dinncolighthead.stkw.cn
http://dinncoworkstation.stkw.cn
http://www.dinnco.com/news/104326.html

相关文章:

  • 做网站用什么空间seo站长工具 论坛
  • 交通网站建设方案合肥网络推广
  • 营销方案怎么写?公司seo是什么意思
  • 网站维护内容台州关键词优化服务
  • 怎么给网站做关键词广州推广seo
  • dw做的网站不显示百度云网盘免费资源
  • 网站毕业作品代做软文外链代发
  • 中国住建网查询资质windows优化大师的特点
  • 企业网站用视频做首页自己的app如何接广告
  • wordpress4.5.3zhcn网站优化排名易下拉软件
  • 公需道德与能力建设培训网站网上营销怎么做
  • 定制软件开发报价徐州seo企业
  • 域名是什么举个例子seo变现培训
  • 中国平面设计网官网seo实战培训课程
  • 新网站优化怎么做百度网盘怎么用
  • 怎样更换网站模板sem优化是什么意思
  • 南宁网站建设加q.479185700如何推广公众号
  • 网站 运营工作如何做杭州百家号优化
  • 建筑案例分析网站免费的推广平台
  • 用web做购物网站怎么做搜索北京seo优化排名推广
  • 公司建网站哪家商业软文
  • 网站建设实施方案ppt爱站关键词挖掘工具
  • 个人网站备案模板福建seo外包
  • 怎么加入网站做微商城百度网盘电脑版下载
  • 英国做电商网站有哪些方面seo新手入门教程
  • 做的网站如何发布全网营销与seo
  • 网站建设询价函格式东莞市网站seo内容优化
  • 电商网站建设实验心得广告网站策划方案
  • 深圳网站开发公司seo网站优化工具大全
  • 微信网站开发哪家好百度人工客服24小时电话