首页 文章 精选 留言 我的

精选列表

搜索[金融专有云开发测试平台],共10000篇文章
优秀的个人博客,低调大师

iOS开发 ARC下dealloc的使用

在MRC时代,我们需要在 dealloc中做很多,比如释放对象,等等; 如今我们已经进入ARC时代,对于普通对象的释放,系统已经帮我们做好了; 那是否可以高枕无忧了呢?在ARC下我们应该做什么? 观点: ARC下,系统可以帮我们释放该对象,及其包含的对象; 但是却无法释放不属于该对象的一些东西,如: 1.通知的观察者,或KVO的观察者 由于通知中心是系统的一个单例,你在注册通知的观察者时,实际上是在通知中心注册的, 这时,即使ARC下系统帮我们释放了对象,但是在通知中心的观察还是没有移除,那么当有 该通知时,依然会尝试调用该对象的接受通知的方法,这可能会导致一些问题. 这一点有点像,你晚上六点下班了...但是却没有刷卡..., 2.对象强委托/引用的解除(例如XMPPMannerger的delegateQueue) 对于其他的对象来把你当做委托 delegate时,并且是 强引用时,即时你自身被释放,但是引用你的对象依然还在, 这时需要在引用你的对象移除该delegate 3.做一些其他的注销之类的操作(关闭程序运行期间没有关闭的资源) 一个对象,如一个ViewController在销毁之前有可能需要和server打交道; 这时我们也可以在dealloc中写 关于dealloc的底层实现,可以参照objc运行时代码 示例,ARC下我们应该做的: [html]view plaincopy -(void)dealloc { [[NSNotificationCenterdefaultCenter]removeObserver:self];//移除通知观察者 [[XMPPManagersharedManager]removeFromDelegateQueue:self];//移除委托引用 [[MyClassshareInstance]doSomething]//其他操作 } ARC下我们没必要做的 [html]view plaincopy -(void)dealloc { _name=nil; [_timeinvalid]; } [html]view plaincopy 总结:dealloc在ARC下的作用就是释放系统无法释放的该对象占用的资源,或者其他对象对该对象的引用. 原文出自:http://blog.csdn.net/yangbingbinga/ 本文转自ljianbing51CTO博客,原文链接:http://blog.51cto.com/ljianbing/1871811,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android开发实践:编译VLC-for-android

1. 准备编译环境 基本上按照这篇wiki的介绍就足够了,为了顺利完成编译,建议首先保证相关的软件或者依赖库都已经下载好了,我再强调一下几个重点注意事项。 (1) Android SDK:必须使用SDK Platform Android 5.0, API 21,因为VLC-for-android用到了Android 5.0 的一些API。 (2) 最好通过apt-get install 把下面这些依赖的软件都安装一遍,或更新到最新版 git,apache-ant (or ant), autoconf, automake, autopoint, cmake, gawk (or nawk), gcc, g++, libtool, m4, patch, pkg-config, ragel, subversion, unzip. 2. 下载源码包 直接通过git下载VLC-for-android最新的源码即可: 1 gitclonegit: //git .videolan.org /vlc-ports/android .git 3. 编译VLC源码和VLC Android工程 (1) 配置编译环境变量 具体参考wiki的介绍,你可以写个shell脚本来执行,避免每次编译都要配置,下面是我的环境变量,可以根据你的路径修改: 1 2 3 4 5 6 #!/bin/sh export ANDROID_SDK= /opt/android/sdk/ export ANDROID_NDK= /opt/android/android-ndk-r10/ export ANT_DIR= /opt/android/ant/ export PATH=$PATH:$ANDROID_SDK /platform-tools :$ANDROID_SDK /tools :$ANT_DIR export ANDROID_ABI=armeabi-v7a (2) 执行编译 1 shcompile.sh VLC不愧是使用这么广泛的播放器,它的编译脚本写得非常强大和智能,直接通过执行compile.sh,它会自动check所有的依赖,并通过网络去下载缺失的库。 首先,它会下载vlc的源码,并存放在当前目录下。然后去下载依赖的第三方库文件。 当然,由于GFW的存在,有的时候下载会失败,这个时候,就需要你手动去Google搜索它正在下载的依赖文件,手动下载好了之后放到 vlc/contrib/tarballs目录下,然后再回到命令行重新执行 sh compile.sh 它依赖的全部第三方库文件如图所示: (3) 编译问题 编译过程还算顺利,只出现过一个大问题,如下: 1 2 3 google /protobuf/unittest .proto:853:21:Missingfieldnumber. google /protobuf/unittest .proto:862:1:Reachedendofinput in messagedefinition(missing '}' ). make [3]:***[unittest_proto_middleman]Error1 网上也搜不到解决方案,我看了下GitHub上Protobuf的Readme,然后下载了最新的protobuf放到vlc/contrib/tarballs/contrib-android-arm-linux-androideabi/protobuf目录下,执行./configure --disable-shared,再编译,没想到就直接过了。 4. 加载VLC-For-Android的Java工程 编译通过后,就可以直接在vlc-android/bin目录下看到debug版的apk了,下面简单说说在Eclipse中加载vlc-android的整个工程。 打开Eclipse,选择Import,把vlc-for-android目录下所有的工程到导入到Eclipse中(我去掉了TV工程),如图所示,有5个必须的工程,其中,VLC是主工程,其他四个都是Lib工程。没有什么意外的话,直接运行VLC工程,就可以在Android手机上看到VLC播放器应用了! 本文转自 Jhuster 51CTO博客,原文链接:http://blog.51cto.com/ticktick/1586072,如需转载请自行联系原作者

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册