现在的项目是手动内存管理,所以在引入第三方资源库时候,很多资源库更新以后都开始使用arc进行编码,这样就导致两种代码风格不一致,有的时候可能开发者也没有注意到这些问题,反正用的时候也没有报错,就直接使用了:但是有的时候,因为arc编码中用到了新的属性修饰符,例如weak,这时候在手动管理内存的代码中就不能编译通过,报错的内容就是:@synthesize of ‘weak’ property is only allowed in ARC or GC mode,这就是引入的arc代码在项目中的冲突,…
在ARC中的assign和weak可以说非常相像,导致有很多人误以为他们是一摸一样的,在任何时候都可以划等价,但事实却不是这样. 在群里,有人问,id类型的delegate属性到底是用assign还是weak @property (weak, nonatomic) id<AnyDelegate> delegate; @property (assign, nonatomic) id<AnyDelegate> delegate; 大家众说纷纭,说都可以的,说assign的,说weak的…
Objective-C中,ARC下的 strong和weak指针原理解释 提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是"本地变量" 一.简介 ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain.release.autorelease语句.你不再需要担心内存管理,因为编译器为你处理了一切. 注意:ARC 是编译器特性,而不是 iOS 运行时特性(…
@property()常用的属性有:nonatomic,atomic,assign,retain,strong,weak,copy. 其中atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作. NSObject对象的@property属性时,默认为atomic,提供多线程安全. 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果.加了atomic,setter函数会变成下面这样: NSLock *_lock = [[NSLock alloc]ini…
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 其实标题中这个问题并不准确,准确的说法应该是iOS下的OpenCV开发是使用OC还是Swift+OC.这个问题纠结了很久,研究了很多例子.先说结论:如果用到的算法规模不大且不熟悉cap_ios.h尽量用Swift+OC.(欢迎高手来打脸) iOS下OpenCV开发的例子很多,大家可以直接去GitHub上扒拉,但是Swift还是比较少,先贡献几个能运行的例子:Objective-C(<Inst…
iOS retain.strong.weak.assign strong与weak是由ARC新引入的对象变量属性xcode 4.2(ios sdk4.3和以下版本)和之前的版本使用的是retain和assign,是不支持ARC的.xcode 4.3(ios5和以上版本)之后就有了ARC,并且开始使用 strong与weak assign: 用于非指针变量.用于 基础数据类型 (例如NSInteger)和C数据类型(int, float, double, char, 等),另外还有id 如: @p…
WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star.我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以及之前,该库只有一个类和一个js 的txt文件,所以旧版本的WebViewJavascriptBridge 是非常容易理解的.而最新版的WebViewJavascriptBridge因为也要兼容WKWebView,所以里面也加入了两个新的类,一开始看的时候,会被它里面负责的逻辑吓到,其实仔细越多是非…
iOS下的实际网络连接状态检测 序言 网络连接状态检测对于我们的iOS app开发来说是一个非常通用的需求.为了更好的用户体验,我们会在无网络时展现本地或者缓存的内容,并对用户进行合适的提示.对绝大部分iOS开发者来说,从苹果示例代码改变而来的各种Reachablity框架是实现这个需求的普遍选择,比如这个库.但事实上,基于此方案的所有实现,都无法帮助我们检测真正的网络连接状态,它们能检测的只是本地连接状态:这种情况包括但不限于如下场景: 1.现在很流行的公用wifi,需要网页鉴权,鉴权之前无法…
iOS下Wi-Fi开发需要添加依赖库SystemConfiguration.framework,在需要使用Wi-Fi信息的控制器下引入头文件#import <SystemConfiguration/CaptiveNetwork.h> 1,Wi-Fi热点获取 +(NSString *) currentWifiSSID { #if TARGET_OS_SIMULATOR return @"(simulator)"; #else NSArray *ifs = (__bridge…
iOS下JSON字符串反序列化成对象.在正式的项目中比較常见.例如以下几个经常使用开源库.能够依据个人喜好任选其一: 1. JSONModel: https://github.com/icanzilb/JSONModel 2. MJExtension: https://github.com/CoderMJLee/MJExtension 3. Mantle: https://github.com/Mantle/Mantle 当中,JSONModel对数组元素反序列化,须要定义一个跟数组元素Mode…
同事在统计日志的时候,想用localStorag去记载一些什么,但是在各大浏览器都运行的良好的基础上,唯独IOS下的safari一直静静无声,没有任何反应.打印localStorage都是Object,说明浏览器是支持的,后来发现猜想可能是无痕浏览等设置方面的问题. 关闭无痕浏览模式后,数据正常. // Safari, in Private Browsing Mode, looks like it supports localStorage but all calls to setItem //…
github:https://github.com/zhoushengmufc/iosselect webapp模仿ios下拉菜单 html下拉菜单select在安卓和IOS下表现不一样,iosselect正是为统一下拉菜单样式而生 我们以IOS下select的交互和样式为蓝本,开发了这一组件 先看效果: 特点 可以做到0依赖,只需引用一个js和css即可,样式可自己定制,也可使用默认样式 文件说明 src------iosselect基于iscroll5开发,在这个文件夹下可以看到iscrol…
项目中碰到的兼容类 bug,记录一二. 页面上有几个同类型的控件,点击它们会触发一些事件,很显然,事件委托优于批量绑定.为了图方便,我将 click 事件绑定到了 document.body 上(绑定在 document 上也是一样),在安卓机上反应良好,ios 上居然不会触发点击事件! 试着将事件绑定到了控件的父级元素,问题消失了. 事实上,当使用事件委托给一个元素添加 click 事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, sp…
Content-type要设置成 text/html 我是用的mvc jquery.form.js 提交的表单. 返回json响应数据. 结果在ie下提示打开或保存,查看保存的内容.就是我返回的json内容.ie没有做处理. chrome下就没有问题. 在网上查询一番之后,得到解决. 在页面头部添加 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 就ok了.…
前几天做一个移动端的页面,要加个像微信那样附着在底部的回复框,按照做PC端网页的思路,首先是用fixed,在安卓上测了一下是好的,结果到朋友的iphone6p上就不行了,点击输入框之后它总会跳到屏幕中间去. 后来才知道这是ios下一个普遍的bug,所以我决定把原因和解决方案整理一下,以方便后人. 网上有的人说用那个iscroll.js来解决,不过那样会出现很多样式上的冲突,而且为了一个fixed的bug就动用一个js,未免有点大材小用了. 原因 ios下面,软键盘唤起后,页面的 fixed 元素…
上一篇我们学习了如何写一个Andorid下自动更新的插件,我想还有一部分看本系列blog的开发人员希望学习在iOS下如何做插件的吧,那么今天你就可以来看看这篇文字了. 本次练习你能学到的 学习如何获取iOS当前版本号 学习iOS下插件类的编写 学习iOS下插件的配置 学习iOS下插件的调用 主要内容 APP中[检查更新]显示当前版本号 插件类的编写 在上一篇介绍Andorid插件时我们贴出了很多源码,这里也直接贴出代码,首先是iOS下插件的代码. 我们在Plugins下新建两个文件,一个头文件…
opencv直线检测在c#.Android和ios下的实现方法 本文为作者原创,未经允许,不得转载 :原文由作者发表在博客园:http://www.cnblogs.com/panxiaochun/p/5512142.html c#实现方法 LineSegment2D[][] lines = rgbRect.HoughLines(10, 150, 10, (Math.PI), 10, 0, 50); for (int i = 0; i < lines[0].Length; i++) { rgbIm…
移动端页面内嵌了个 iframe,在 ios 下打开却发现页面怪异.比如 demo.代码如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-sca…
做touchweb开发的时候,做头疼的是,电脑上面时候好的,有些手机上面也是好的,个别手机和浏览器出现问题,对于这些,只能慢慢调试,找问题. 今天说一下比较老的IOS的问题,那就是"iOS下的 Fixed + Input 调用键盘的时候fixed无效问题". 案例如下 <body> <!-- fixed定位的头部 --> <header>这里是头部</header> <!-- 可以滚动的区域 --> <section&g…
模拟调试不能保证真机一定没问题,所以真机调试是非常必要的一步 IOS设备 启用设备调试 在IOS设备中(Iphone,Ipad)中开始web检测器 设备->safari->高级->web检测器 编译代码 ionic build ios 调试 通过命令直接启动 或者 通过xcode导入会自动运行APP ionic run ios --device 这时打开Safari的"开发",就可以看到如下界面: 原文地址:[ionic]Mac IOS下真机调试标签:ionic   …
ios下的Safari真是傲娇啊,坑好多. 首先上代码 <!DOCTYPE html> <html> <head> <title>122</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no"&…
首先了解一下几个相关概念,以方便后面遇到的问题的解决: RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字.算法基于一个数论:将两个大素数相乘非常容易,但要对这个乘积的结果进行因式分解却非常困难,因此可以把乘积公开作为公钥.该算法能够抵抗目前已知的所有密码攻击.RSA算法是一种非对称算法,算法需要一对密钥,使用其中一个加密,需要使用另外一个才能解密.我们在进行RSA加密通讯时,就把公钥放在客户端,私钥留在服务器. PE…
后面的项目发现,还有两个坑,需要注意下: ·本文的解决方案的核心是利用了 微信/易信 在ready的时候会有个 WeixinJSBridgeReady/YixinJSBridgeReady事件,通过监听这个事件来触发的.那有个坑就是 如果微信已经ready了,但还没执行到你监听这个ready事件的代码,那么你的监听是没用的,所以最理想的情况是,监听的js放在head前面(放在css外链之前),确保最新执行,切记!切记!. ·另一个坑就是,本文的解决方案只适合一开始就播放的背景音乐.如果你是做那种…
on 用委托的形式绑定事件 在ios下 父对象是body 获取 docment的时候会 不调用 解决方案  在这些元素上加 cursor: pointer;…
Xamarin.iOS调试提示需要iOS SDK   错误信息:The version of Xamarin.iOS requires th iOS 9.3 SDK (shipped with Xcode 7.3) when the manged linker i s disabled. Either upgrade Xcode, or enable the managed linker.这是由于Xamarin.iOS项目都是通过苹果系统的Xcode工具进行编译.而每个版本的Xcode所自带的S…
Xamarin.iOS项目提示error MSB3174:”TargetFrameworkVersion”的值无效 错误信息:MSBulid\14.0\bin\Microsoft.Common.CurrentVersion.targets(3506.5): error MSB3174:”TargetFrameworkVersion”的值无效这个问题会在Xamarin.iOS和Xamarin.Android中出现.根据项目类型不同,解决办法不同.在Xamarin.iOS项目中,需要修改该项目的.c…
ios下,当有文本框时,会调用输入法,而这个时候,定位(fixed)在底部的东西,就会被弹上例,离底部有段距离,这算是个坑了. 我的解决方案是这样的. 除了定位在底部的元素外,用一个大div把其他元素都包围起来,然后给样式,这个样子. .publish-main{ position: absolute; top:; bottom: 43px; overflow: scroll; left:; right:; } 好了问题完美解决了.…
ios下最简单的正则,RegexKitLite 1.去RegexKitLite下载类库,解压出来会有一个例子包及2个文件,其实用到的就这2个文件,添加到工程中.备用地址:http://www.cocoachina.com/bbs/job.php?action-download-pid-135286-tid-18111-aid-11143.html- Lv 2.工程中添加libicucore.dylib frameworks. 3.现在所有的nsstring对象就可以调用RegexKitLite中…
最近在学习和使用Cocos2d-x框架,虽然说的是跨平台,但是在用VS进行开发,然后移植到android或IOS下,也可能会出现各种问题,需要做细微的调整. 例如我在做文件读写操作的时候,很可能在win32上毫无问题,但是到了IOS上就Get Data Failed. 在经过多次尝试后,发现了以下方法进去读取,可以直接在win32,android和IOS下使用: [cpp] view plaincopy #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) st…
很多开发过微信的人估计都遇到过这样的问题,ios下微信页面标题更改不了,而安卓却可以直接用:document.title="你的标题". 下面是解决这个问题的hack: 1.jquery方式 setTimeout(function(){ //需要jQuery var $body = $('body'); document.title = 'test'; // hack在微信等webview中无法修改document.title的情况 var $iframe = $('<ifram…