LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭

LOFTER-网易轻博

ios开发

2581浏览    276参与
Squirrel

关于获取iOS设备唯一标识符笔记

在iOS的开发过程中,我们常常会遇到获取设备的UUID,IDFV,IDFA,MAC地址等一系列的设备标识符。

什么是设备的UUID呢,更详细的介绍可以参考www.cocoachina.com/industry/20130422/6040.html

话不多说,直接上代码:

1、获取广告标示符(IDFA-identifierForIdentifier)

导入    #import<AdSupport/ASIdentifierManager.h>

+(NSString *)dy_getDeviceIDFA{

ASIdentifierManager...

在iOS的开发过程中,我们常常会遇到获取设备的UUID,IDFV,IDFA,MAC地址等一系列的设备标识符。

什么是设备的UUID呢,更详细的介绍可以参考www.cocoachina.com/industry/20130422/6040.html

话不多说,直接上代码:

1、获取广告标示符(IDFA-identifierForIdentifier)

导入    #import<AdSupport/ASIdentifierManager.h>

+(NSString *)dy_getDeviceIDFA{

ASIdentifierManager *asIM = [[ASIdentifierManager alloc] init];

NSString *idfaStr = [asIM.advertisingIdentifier UUIDString];

return idfaStr;

}

2、获取Vindor标示符 (IDFV-identifierForVendor)

+(NSString *)dy_getDeviceIDFV{

NSString* idfvStr      = [[UIDevice currentDevice] identifierForVendor].UUIDString;

return idfvStr;

}

Git上的erica的UIDevice扩展文件,以前可用但由于IOKit framework没有公开,所以也无法使用。就算手动导入,依旧无法使用,看来获取IMEI要失败了,同时失败的还有IMSI。不过还存在另外一种可能,Stack Overflow上有人提供采用com.apple.coretelephony.Identity.get entitlement方法,but device must be jailbroken;在此附上链接,供大家参考:http://stackoverflow.com/questions/16667988/how-to-get-imei-on-iphone-5/16677043#16677043

3、获取MAC地址

#include <sys/sysctl.h>

#include <sys/socket.h>

#include <net/if.h>

#include <net/if_dl.h>

+(NSString*)dy_getDeviceMAC{

int mib[6];

size_t len;

char *buf;

unsigned char *ptr;

struct if_msghdr *ifm;

struct sockaddr_dl *sdl;

mib[0] = CTL_NET;

mib[1] = AF_ROUTE;

mib[2] = 0;

mib[3] = AF_LINK;

mib[4] = NET_RT_IFLIST;

if ((mib[5] = if_nametoindex("en0")) == 0) {

printf("Error: if_nametoindex error\n");

return NULL;

}

if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0) {

printf("Error: sysctl, take 1\n");

return NULL;

}

if ((buf = malloc(len)) == NULL) {

printf("Could not allocate memory. error!\n");

return NULL;

}

if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) {

printf("Error: sysctl, take 2");

free(buf);

return NULL;

}

ifm = (struct if_msghdr *)buf;

sdl = (struct sockaddr_dl *)(ifm + 1);

ptr = (unsigned char *)LLADDR(sdl);

NSString *macStr = [NSString stringWithFormat:@"%02X:%02X:%02X:%02X:%02X:%02X",*ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4), *(ptr+5)];

free(buf);

return macStr;

}

4、获取UUID

+(NSString*)dy_getDeviceUUID{

CFUUIDRef uuid = CFUUIDCreate(NULL);

assert(uuid != NULL);

CFStringRef uuidStr = CFUUIDCreateString(NULL, uuid);

return (__bridge NSString *)(uuidStr);

}

UDID是肯定要被苹果拒绝的,Stack Overflow提供了另外一种方法,越狱可尝试:http://stackoverflow.com/questions/27602368/how-to-get-serial-number-of-a-device-using-iokit-in-ios8-as-ioplatformserialnumb/27686125#27686125

 @ 

欢子一土一木

iOS中常用框架功能总结-上海诸君Xamarin培训


iOS中常用的框架有如下:

Foundation 提供OC的基础类(像NSObject)、基本数据类型等,(创建和管理集合,字符串等;访问存储在应用程序里的图片和其他资源;提交和接收通知;创建日期和时间对象;自动发现IP网络上的设备;操作URL流;执行异步代码)


UIKit 创建和管理应用程序的用户界面;捕获触摸和基于移动的事件;呈现文字和web内容;优化你的多任务程序;创建定制的用户界面元素.


QuartzCore 提供动画特效以及通过硬件进行渲染的能力


CoreGraphics 提供2D绘制的基于C的API;创建基于路径的绘图;抗锯齿渲染;添加梯度,图片和颜色;

Use coordinate...


iOS中常用的框架有如下:

Foundation 提供OC的基础类(像NSObject)、基本数据类型等,(创建和管理集合,字符串等;访问存储在应用程序里的图片和其他资源;提交和接收通知;创建日期和时间对象;自动发现IP网络上的设备;操作URL流;执行异步代码)


UIKit 创建和管理应用程序的用户界面;捕获触摸和基于移动的事件;呈现文字和web内容;优化你的多任务程序;创建定制的用户界面元素.


QuartzCore 提供动画特效以及通过硬件进行渲染的能力


CoreGraphics 提供2D绘制的基于C的API;创建基于路径的绘图;抗锯齿渲染;添加梯度,图片和颜色;

Use coordinate-space transformations;创建,显示和分析PDF文档;

Core Data框架管着理应用程序数据模型(提供的内建SQLlite技术可以高效的管理数据);在库里存储和接收对象;提供基本的undo/redo;自动验证属性值;用[NSFetchedResultsController]管理表视图中的结果;支持基于文档的应用程序.

SystemConfiguration 检测当前网络是否可用和硬件设备状态

AVFoundation 提供音频录制和回放的底层API,同时也负责管理音频硬件
CFNetwork 访问和配置网络,像HTTP、FTP和Bonjour Services
CoreFoundation 提供抽象的常用数据类型,如Unicode strings、XML、URL等


CoreLocation 使用GPS和WIFI获取位置信息


GameKit 为游戏提供网络功能:点对点互联和游戏中的语音交流


AddressBook 提供访问用户联系人信息的功能


AddressBookUI 提供一个用户界面,用于显示存储在地址簿中的联系人信息


AudioToolBox 提供音频录制和回放的底层API,同时也负责管理音频硬件


AudioUnit 提供一个接口,让我们的应用程序可以对音频进行处理
MapKit 为应用程序提供内嵌地图的接口


MediaPlayer 提供播放视频和音频的功能
MessageUI 提供视图控制接口用以处理E-mail和短信


OpenGLES 提供动画特效以及通过硬件进行渲染的能力;创建2D和3D图形;创建更复杂的图形,比如数据虚拟化,模拟飞行,或者视频游戏;访问底层图形设备.


StoreKit 为应用程序提供在程序运行中消费的支持


欢子一土一木

IOS 开发界面的3种方式-上海诸君Xamarin培训

    xcode6进行三种基本的界面布局的方法,分别是手写UI,xib和storyboard。手写UI是最早进行UI界面布局的方法,优点是灵活自由,缺点是使代码看起来比较长。xib也是比较早出现的UI布局的方式,有点是不用手写代码,但是每个界面都需要自己xib,也是比较麻烦。而storyboard则是在iOS5以后出现的,是xib的聚合体。

   上海诸君信息科技有限公司致力于一流创新软件产品设计定制,服务客户遍及全球, 公司有多款精心设计的软件产品,如诸君餐饮一体化管理系统、PadOrder电子菜谱、CDM文档管理系统...

    xcode6进行三种基本的界面布局的方法,分别是手写UI,xib和storyboard。手写UI是最早进行UI界面布局的方法,优点是灵活自由,缺点是使代码看起来比较长。xib也是比较早出现的UI布局的方式,有点是不用手写代码,但是每个界面都需要自己xib,也是比较麻烦。而storyboard则是在iOS5以后出现的,是xib的聚合体。

   上海诸君信息科技有限公司致力于一流创新软件产品设计定制,服务客户遍及全球, 公司有多款精心设计的软件产品,如诸君餐饮一体化管理系统、PadOrder电子菜谱、CDM文档管理系统、清洁能源参数优化系统、银行iPad文件管理系统等。
    我们提供优秀的iOS/Xamarin/.NET/WPF开发与咨询、管理软件定制开发、点单软件与移动客户端 (WP,Android,iOS)软件开发,为全球多家软件公司、国企、医疗、能源机构提供优秀的培训咨询解决方案。


欢子一土一木

iOS工程师Mac上的必备软件-上海诸君Xamarin培训

    作为一名iOS开发工程师必须是全能的。你不会点UI设计、不会点后台语言、不会点安卓开发...那都是不可能的事情。ios培训专家是给大家添虎翼的。Mac上有很多好用的软件,有的能提升我们的开发效率,有的能提升我们的工作效率。今天就来介绍一些Mac上对我们开发有帮助的软件。

  1. Mac效率工具

  Mac管家--Alfred

  记得以前在Windows平台有一个叫Everything的软件,主要特色就是输入关键字后能够快速得定位出你想要的文件。今天我们要介绍的Alfred...

  

    作为一名iOS开发工程师必须是全能的。你不会点UI设计、不会点后台语言、不会点安卓开发...那都是不可能的事情。ios培训专家是给大家添虎翼的。Mac上有很多好用的软件,有的能提升我们的开发效率,有的能提升我们的工作效率。今天就来介绍一些Mac上对我们开发有帮助的软件。

  1. Mac效率工具

  Mac管家--Alfred

  记得以前在Windows平台有一个叫Everything的软件,主要特色就是输入关键字后能够快速得定位出你想要的文件。今天我们要介绍的Alfred也有和它有一样的功能。当然,如果只是简单的搜搜文件那也就称不上“神软”了。

  Alfred是一个用键盘通过热键、关键字、自定义插件来加快操作效率的工具,它不但是搜索工具,还是快速启动工具,甚至能够操作许多系统功能,扩充性极强,如果有兴趣应该还可以写一个煮咖啡的插件出来。简单点说就是使用了Alfred后你就可以丢掉鼠标了!

  教程传送门:从零开始学习Alfred:基础功能及设置

  Mac清理工具--CleanMyMac

  作为一名iOS开发工程师,每天Xcode产生的缓存数据可以达到1G之多。Mac用户认为电脑不需要清理垃圾,但想法是好的。当你有一天发现你的电脑运行速度缓慢,而且时常卡顿,就是你电脑的内存不够用了。对于128G内存的电脑来说,这简直是个痛苦。终于有一天我发现了CleanMyMac,它是一款界面简洁,清理高效的清理工具,每天上班的第一件事就是用它清理一下电脑,那么接下来的一天你就不用愁了。

  2. iOS开发效率工具

  UI调试神器--Reveal

  Reveal是一个界面调试工具。使用Reveal,我们可以在iOS开发时动态地查看和修改应用程序的界面。它类似Chrome的“审查元素”功能,我们不但可以在运行时看到iOS程序的界面层级关系,还可以实时地修改程序界面,不用重新运行程序就可以看到修改之后的效果。

  教程传送门:iOS开发中集成Reveal

  接口调试--Postman

  在我们平时开发中,特别是需要与接口打交道时,无论是写接口还是用接口,拿到接口后肯定都得提前测试一下,这样的话就非常需要有一个比较给力的Http请求模拟工具。Postman就是一种网页调试与发送网页http请求的chrome插件。我们可以用来很方便的模拟get或者post或者其他方式的请求来调试接口。

  教程传送门:Postman使用详解

  网络拦截--Charles

  Charles是在Mac下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。

  Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

  除了在做移动开发中调试端口外,Charles也可以用于分析第三方应用的通讯协议。配合Charles的SSL功能,Charles还可以分析Https协议。很多iOS的高仿应用都是用Charles来拦截获取网络数据的

  教程传送门:Charles从入门到精通

  取色工具--Sip

  Sip是全栈开发人员的利器,用户只需轻点鼠标便可快速取得屏幕当前位置的颜色值,并将数据自动存到剪切板,方便随时粘贴出来。支持CSS、UIColor等多种格式。

  JSON生成数据模型工具--JSONExport

  JSONExport是一个Mac OS X 应用,用Swift编写。它可以将JSON自动生成指定语言的Model类代码,包括属性,属性的getters和setters方法等。。不管你json数据多复杂,里面嵌套多少层,该工具都可以将它转换出来,这对于我们开发生成数据模型节省了不少时间。JSONExport支持OC、Swift、Java等语言。

  Git代码界面管理工具--SourceTree

  SourceTree是Windows和Mac OS X 下免费的Git和Hg客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、clone、push、pull和merge等操作。

  教程传送门:GUI for git|SourceTree|入门基础

  Svn代码界面管理工具--Cornerstone

  CornerStone是Mac OS X系统下非常好用的一款svn软件管理工具,当然还有Versions也是可以用的,但是使用起来不如CornerStone好用、强大。

  注意:CornerStone是收费,如果是公司需要使用到,建议让公司购买软件使用版权,支持正版。本人所用的是公司购买了使用权的版本。当然网上也是有破解版本的。

  教程传送门:用CornerStone配置SVN,HTTP及svn简单使用说明

  3.UI工具

  原型设计工具--Axure RP Pro

  Axure RP Pro是一个产品经理必备的交互原型设计工具,能够高效率制作产品原型,快速绘制线框图、流程图、网站架构图、示意图、HTML模版等。

  Axure RP Pro是专为Rapid Prototype Design而生,它可以辅助产品经理快速设计完整的产品原型,并结合批注、说明以及流程图、框架图等元素将产品完整地表述给各方面设计人员,如UI、UE等等,并在讨论中不断完善。

  教程传送门:Axure教程-Axure中文网

  Logo设计工具--Logoist

  Logoist2是一款Mac上非常优秀的一款图标LOGO、横幅、海报快速制作工具软件内置了大量专业和漂亮的模板,Logoist是一款适用于mac作系统的制作图标软件,由于Logoist软件中就内置了超多的模板和素材,所以用户不需专业的知识就可以制作出你喜欢的图标。

  扁平化UI设计工具--Sketch

  Sketch是一款适用于所有设计师的矢量绘图应用。矢量绘图也是目前进行网页,图标以及界面设计的最好方式。但除了矢量编辑的功能之外,还添加了一些基本的位图工具,比如模糊和色彩校正。

  Sketch是为图标设计和界面设计而生的。它是一个有着出色UI的一站式应用,所有你需要的工具都触手可及。在Sketch中,画布将是无限大小的,每个图层都支持多种填充模式;我们有最棒的文字渲染和文本式样,还有一些你一定会爱上的文件导出工具。

  教程传送门:Sketch中文用户手册- Sketch中文网

  UI与代码转换工具--PaintCode

  PaintCode是个非常棒又小而美的mac程序,主要用途是可以将你的矢量图轻松地转换成CoreGraphics代码,可以很轻松的把代码放在你的iOS app里。(好处当然是降低了图片的使用率,app容量大大减小,而且做动效也容易了很多。)

  它不单单是把矢量图转换为代码,更重要的是这些代码生成的图像都是动态的,意味着你可以方便的改变他们的颜色,大小,布局。一切能通过代码更改的。

  教程传送门:PaintCode教程

  4.视频工具

  视频录制--QuickTime Player

  QuickTime是什么?QuickTime是一款拥有强大的多媒体技术的内置媒体播放器,可让你以各式各样的文件格式观看互联网视频、高清电影预告片和个人媒体作品,更可让你以非比寻常的高品质欣赏这些内容。QuickTime不仅仅是一款多媒体播放器,还拥有强大的视频录制/剪辑功能。所以Quick Time的亮点不在于"播放电影"而是录制/剪辑

  QuickTime是Mac自带的软件,所以不用我们再去下载。

  教程传送门:QuickTime是什么?QuickTime Player怎么使用?

  Gif生成工具--licecap

  一款简洁易用的动画屏幕录制软件。licecap捕捉屏幕的区域并保存为gif动画(便于网络发布)或lcf格式。该软件直观易用,功能灵活,支持Windows和OSX。其设计思想是轻量级、适当功能、高性能。很多简书上看到的gif图大多都是用licecap生成的。


欢子一土一木

iOS培训选择指南

    当“神机”再次引发抢购狂潮,预示着iOS新的巅峰 越来越多的人选择iOS开发作为理想职业,并为其做努力 ,选择培训机构增强自身技能已经成为多数人的选择,其中包括还未入门的小白和具备一定开发经验的程序员 ,东北地区科技需求大,由于起步较晚,要在短时间追上iOS发展脚步,最好的方法就是以高精尖开发人员弥 补。


    很多初学者很容易弄混C与语言中的知识,为了不混淆理论,以变量、常量和静态变量为例具体划分:变量——变量是一段有名字的连续存储空间。在代码中...

    当“神机”再次引发抢购狂潮,预示着iOS新的巅峰 越来越多的人选择iOS开发作为理想职业,并为其做努力 ,选择培训机构增强自身技能已经成为多数人的选择,其中包括还未入门的小白和具备一定开发经验的程序员 ,东北地区科技需求大,由于起步较晚,要在短时间追上iOS发展脚步,最好的方法就是以高精尖开发人员弥 补。

 

    很多初学者很容易弄混C与语言中的知识,为了不混淆理论,以变量、常量和静态变量为例具体划分:变量——变量是一段有名字的连续存储空间。在代码中通过定义变量来申请并命名一段存储空间,并通过变量的名字来使用这段存储空间。 变量是程序中数据的临时存放场所。在代码中可以只使用一个变量,也可以使用多个变量,变量中可以存放单词、数值、日期以及属性。常量——常量是一种标识符,他在程序运行期间是不变的。一个具体的数字,字符都是常量。常量是具体的,使用时可以在内存中看到其具体的表示方法。比如 ,如果我定义一个变量i,让i=1;那么在内存中有一段名为&i的地址,这段地表示了1的信息,1在内存中是以 补码的形式存在的,int是4个字节,所以在内存中1就存为0000 0000 0000 0000 0000 0000 0000 0001所以,常量如果使用了,那么在内存中是可以找到的。


    静态变量——静态变量是一个变量,但是他不同于普通的变量,静态变量在声名时就必须赋上初值,如果不为他赋值系统也会给他自动赋值,静态变量的值在程序执行过程中是不能被修改的。静态变量分为全局变量和局 部变量。全局静态变量是在整个程序执行过程中都可以使用的,局部静态变量是在他的作用域内可以执行的。 但无论是局部静态变量还是全局静态。变量,他们在内存中都是一直存在的。静态变量的作用类似于常量。


    iOS开发学习过程容易混淆的知识点一定注意分开记,上海诸君Xamarin.ios培训采用进阶制教学,把前沿的专业通过授课和疏导传递给学员。


欢子一土一木

关于ios开发的一些常识问题

问题:关于ios开发的一些常识问题

描述:


什么是sdk,以及xcode和sdk的区别,什么是API,集成开发工具是不是就是指xcode


解决方案1:


XCode是一个适合编译iOS的编译器,SDK是包含demo和api文档的开发包,api是接口


解决方案2:


sdk就是软件开发包,api是程序接口。sdk一般是指接口+文档+例子,api是指调用接口

xcode是一个开发环境,不但可以用于ios开发,还可以开发别的。


解决方案3:


api是数据获取接口,一般我们通过...

问题:关于ios开发的一些常识问题

描述:

 

什么是sdk,以及xcode和sdk的区别,什么是API,集成开发工具是不是就是指xcode

 

解决方案1:

 

XCode是一个适合编译iOS的编译器,SDK是包含demo和api文档的开发包,api是接口

 

解决方案2:

 

sdk就是软件开发包,api是程序接口。sdk一般是指接口+文档+例子,api是指调用接口

xcode是一个开发环境,不但可以用于ios开发,还可以开发别的。

 

解决方案3:

 

api是数据获取接口,一般我们通过服务器端给定的api地址进行数据的获取

xcode是一个开发环境,一般用于ios开发

软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)

 

解决方案4:

 

xcode是编译器 sdk是开发包 提供了各种API给你调用


buer
「I need job,cal...

「I need job,call me a job,do'nt bring me back to life」

「I need job,call me a job,do'nt bring me back to life」

LOFTER

让兴趣,更有趣

简单随性的记录
丰富多彩的内容
让生活更加充实

下载移动端
关注最新消息