jsbanwjly 说得不对。
这个答案不唯一。
如果是在基于DOS(16位 *** 作系统)的编译器(比如TC20)上运行,则142+2+2+4=10。(Int 占2位)154。
如果是在基于windows(32位 *** 作系统)的编译器(比如VC60)上运行,则144+4+4+4=16。(Int 占4位)154。
不信试一下
struct date
{
int day;
int month;
int year;
union
{
int share1;
float share2;
}share;
}a;
int main()
{
printf("%d,%d\n",sizeof(a),sizeof(ashare));
getch();
return 0;
}
下面主要说一下再整个过程中个人觉得比较重要的几个地方
这些属性根据自己的需求设置好数量就行。说一下可能遇到的问题
11、 NSExtensionActivationSupportsText,主要用于备忘录之类文本分享,网上资料有的说设置bool类型,有的说设置string类型,值为YES,我这边都不好使,最后设置为值为1的number类型可以了。如果跟我遇到同样问题的可以试下
12、 在App Store分享APP时,有两个NSExtensionItem,UTI分别为publicurl和publicpng,loadItemForTypeIdentifier获取item类型为NSURL和UIImage,截图分享的item类型也为UIImage
在自定义VC的viewDidLoad异步获取分享数据,获取完毕刷新UI
这块是这个功能踩坑最多的地方,因为在widget中内存限制为120M,、视频、文件,随随便便都超了,这里说一下几个需要注意的地方
这里主要是多图时可能会出现内存过大的情况,我这边的处理是直接把copy到共享目录,然后跳转主App里发送原图。也可以直接将压缩后转成base64str数组然后写入共享目录,不过压缩比例不好控制,压缩后的总大小,小图不能压缩等都要考虑进去,下面把几个用到的方法和处理时机贴一下
311、 压缩方法
312、 base64str互转
313 、获取主要信息loadItemForTypeIdentifier方法里保存地址,用于UI展示及后续写入共享目录
314、 确认分享时把批量copy到共享目录,也可以选择压缩后转base64str数组写入文件
315、 呼起主APP后先从获取地址数组,在通过地址取分享数据
一方面是UI展示所需要的内容,如视频封面图、时长、大小,文件的大小、类型
这里说一下取文件大小时不能取NSData得length方式,大文件会导致内存溢出,应该使用NSFileManager获取,这里要注意下通过loadItemForTypeIdentifier取得的路径要先stringByRemovingPercentEncoding解码再截取/var之后的路径,比如你取得文件路径为file%3A%2F%2F%2Fprivate%2Fvar%2Fmobile%2FLibrary%2FMobile%20Documents%2Fcom%7Eapple%7ECloudDocs%2F%E6%9C%AA%E5%91%BD%E5%90%8D%E6%96%87%E4%BB%B6%E5%A4%B9%2Faaapdf
那你要用/var/mobile/Library/Mobile Documents/com~apple~CloudDocs/未命名文件夹/aaapdf去取文件大小,下面把主要用的方法贴一下
321、 文件大小以及格式化
322、 获取视频时长(这里要用全路径)
323、 获取视频封面图(这里也要用全路径)
324、 获取文件类型对应切图,把素材替换为你们UI给的切图
因为需要把分享的文件存储到group共享目录里去,当文件超过120M的时候,就不能使用writeToURL了,要不会内存溢出,这里使用NSFileManager的copyItemAtPath,在使用这个函数的时候两个路径都要使用解码后再截取/var之后的路径
目前能想到的就这么多啦,如果有什么疑问或者发现什么不足,欢迎评论指正。
在官网上进入
具体步骤1注册账号:
首先,我们需要在share sdk官网(>
以上就是关于怎么获取sharepoint的版本全部的内容,包括:怎么获取sharepoint的版本、怎么做到sharepoint列表间的关联取值、android sharesdk 分享成功执行的什么方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)