- ‘iOS开发’帮你全解iOS通知机制(轻松过面)
iOS弗森科
简述本文主要是针对iOS通知机制的全面解析,从接口到原理面面俱到。同时也解决了之前写的文章阿里、字节:一套高效的iOS面试题中关于通知的问题,相信看完此文再也不怕面试官问我任何通知相关问题了由于苹果没有对相关源码开放,所以以GNUStep源码为基础进行研究,GNUStep虽然不是苹果官方的源码,但很具有参考意义,根据实现原理来猜测和实践,更重要的还可以学习观察者模式的架构设计问题列表先把之前的问题
- linux gnustep项目,linux上安装GNUStep
博语小窝
linuxgnustep项目
1、安装GCC:(1)我安装的是gcc4.3.1,首先安装gmp-4.2.2和mpfr-2.3.1,mpfr带一个patch,这些东东是干什么用的我也不清楚;(2)因为我的gmp和mpfr都是安装在/usr/include下,所以configure时不需要指定--with-mpfr=mpfr目录--with-gmp=gmp目录。运行configure--prefix=/usr--libdir=/u
- linux gnustep项目,archlinux下配置GNUStep环境
weixin_36352523
linuxgnustep项目
8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?GNUStep主要有一下四部分组成,对应着在Archlinux系统下面我们也需要安装四个软件包。GNUstepMake:提供类似Makefile的功能,称为GNUmakefile,较Makefile好用许多。GNUstepBase:提供OpenStep的Foundation程式库,处理非图形介面的功能。GNUstepGUI
- 为gnustep项目移植到wsl的过程
etcix
记录objc学习
仔细研读/usr/share/GNUStep/Makefiles下的很多makefile文件的一些变量定义然后开始整理代码,各个文件存放到自定义的文件夹,方便管理修改GNUMakefile,这里要研读很多Makefile文件的变量定义,修正自己的赋值一个尝试例子:https://gitee.com/nidielaila/shabiwuziqi-port-to-wsl即使是没人用的技术,即使wind
- iOS 多线程 基本概念
咖啡豆8888
前言GCD源码地址GNUStep(是GNU计划项目之一,他将cocoa库重新开源实现了一遍,不是apple官方文档,但是具有一定的参考价值)常见的多线程方案一般分为这几种线程方案GCD函数//异步执行任务dispatch_async(dispatch_get_global_queue(0,0),^{});//同步执行任务dispatch_sync(dispatch_get_global_queue
- use gnustep objective-c
etcix
zig学习objective-c开发语言
firstapp#importintmain(intargc,constchar*argv[]){NSAutoreleasePool*pool=[NSAutoreleasePoolnew];NSLog(@"firststart");[pooldrain];return0;}tech专注于概念,而不是迷失在语言技术细节中编程语言的目的是成为一个更好的程序员;也就是说,在设计和实现新系统以及维护旧系统
- 【iOS】通知原理
瓯海剑
ios
我们可以通过看通知的实现机制来了解通知中心是怎么实现对观察者的引用的。由于苹果对Foundation源码是不开源的,我们具体就参考一下GNUStep的源码实现。GNUStep的源码地址为:GNUStep源码GitHub下载地址,具体源码可以进行查看。通知的主要流程通知全局对象是一个名为NCTbl的结构体,里头有三个重要的成员变量,分别是是两张GSIMapTable表:named、nameless,
- 2020 最新iOS面试题之iOS通知机制全面解析
iOS猿_员
简述本文主要是针对iOS通知机制的全面解析,从接口到原理面面俱到。同时也解决了阿里、字节:一套高效的iOS面试题中关于通知的问题,相信看完此文再也不怕面试官问我任何通知相关问题了由于苹果没有对相关源码开放,所以以GNUStep源码为基础进行研究,GNUStep虽然不是苹果官方的源码,但很具有参考意义,根据实现原理来猜测和实践,更重要的还可以学习观察者模式的架构设计问题列表先把之前的问题列出来,详细
- iOS 特性小记
iVikings
obj4源码https://opensource.apple.com/tarballs/objc4/CFRunLoopRef源码https://opensource.apple.com/tarballs/CF/GCD源码https://github.com/apple/swift-corelibs-libdispatchGNUstep源码http://www.gnustep.org/resourc
- Objective-C 代码规范
CarsonChen
Objective-C,通常写作ObjC或OC和较少用的ObjectiveC或Obj-C,是扩充C的面向对象编程语言。它主要使用于MacOSX和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。GCC与Clang含Objective-C的编译器,Objective-C可以在GCC以及Clang运作的系统上编译。1980年代初布莱德·考克斯(
- GNUstep KVC/KVO探索(一):KVC的内部实现
哦呵呵y
GNUstepKVC/KVO探索(一):KVC的内部实现GNUstepKVC/KVO探索(二):KVO的内部实现KVC全称是KeyValueCoding,定义在NSKeyValueCoding.h文件中,是一个非正式协议。KVC提供了一种间接访问其属性方法或成员变量的机制,可以通过字符串来访问对应的属性方法或成员变量。在NSKeyValueCoding中提供了KVC通用的访问方法,分别是gette
- KVC
forping
本文章的代码来源gnustep-base-1.26.0,应该和系统的实现还是不一样的,仅供参考:常用方法+(BOOL)accessInstanceVariablesDirectly;//是否允许访问成员变量,默认是yes-(void)setValue:(id)anObjectforKey:(NSString*)aKey;-(void)setValue:(id)anObjectforKeyPath:
- GNU计划之GNUstep
水中的蓝天
本文源自本人的学习记录整理与理解,其中参考阅读了部分优秀的博客和书籍,尽量以通俗简单的语句转述。引用到的地方如有遗漏或未能一一列举原文出处还望见谅与指出,另文章内容如有不妥之处还望指教,万分感谢。GNU是什么?先看看官方解释GNU是一个自由软件操作系统—就是说,它尊重其使用者的自由。GNU操作系统包括GNU软件包(专门由GNU工程发布的程序)和由第三方发布的自由软件。GNU的开发使你能够使用电脑而
- GNUstep
China架构师
GitHub地址GNUstep简单来说,GNUstep是实现OpenStep接口的开放软件(OpenSource)计划,目标为提供跨平台的面向对象程序开发环境。C语音有DennisRitchie于20世纪70年代早期首创,20世纪70年代晚期才获得广泛支持并流行开来。UNIX操作系统的普及也促进C语音的普及,UNIX完全有C语音编写。Objective-C主要由Stepstone公司的布莱德·考克
- 《Objective-C高级编程 iOS与OS X多线程与内存管理》3
我才是臭吉吉
内存管理篇:3.autoreleaseautorelease的实质:将创建的对象加入到NSAutoreleasePool管理“数组”中,并告知ARC系统暂时不要对此对象进行处理。待pool对象在其所属的NSRunLoop循环一次完成,准备释放(drain)时,对“数组”中的所有对象依次调用release方法。此时ARC再对对象进行内存管理。GNUstep的实现GNUstep的版本使用了同NSMut
- Runloop
tigerfly66
runloop的理解借助了MJ视频以及开源文档https://github.com/apple/swift-corelibs-foundation/https://blog.csdn.net/u014795020/article/details/72084735GNUstep源码下载地址:http://www.gnustep.org/resources/downloads.php参考https:/
- window下的Objective-c配置
scv
安装软件MinGW注意勾选objective-c选项;GNUStep注意安装先后顺序,先安装msys,后安装Core;添加windows环境变量到path如添加F:\MinGW\bin到环境变量,添加后重新打开GNUStep的Shell编译配置gcc-o[nameoftheprogram][filename.m]-I/GNUstep/System/Libraries/Headers-L/GNUst
- alloc retain release dealloc内部实现原理解析
有一种再见叫青春
由于Foundation框架并没有公开,首先使用GNUstep说明idobj=[[NSObjectalloc]init];上述调用NSObject类的alloc类方法在NSObject.m的源代码实现如下:+(id)alloc{return[selfallocwithzone:NSDefaultMallocZone()];}+(id)allocWithZone:(NSZone*)z{returnN
- 2020 阿里、字节iOS面试题之Runtime相关问题1(附答案)
iOS猿_员
目录2020阿里、字节iOS面试题之Runtime相关问题12020阿里、字节iOS面试题之Runtime相关问题22020阿里、字节iOS面试题之Runtime相关问题3面试题的结构分类和细化runtime相关问题runtime结构模型内存管理关联属性或者hook相关的MethodSwizzleNSNotification相关参考GNUStep源码NSNotification实现原理相关Runl
- ios学习之旅---oc面向对象的特点
爱上ios
iosios编程面向对象设计objective-c
1.OC简介Objective-C是一种面向对象的计算机语言,BradJCox1980s设计了Objective-C,该语言是基于SmallTalk-80。1988NeXT发布了Objective-C,它的开发环境和类库叫“NEXTSTEP”,1994年NeXT与Sun发布了标准的NEXTSTEP系统,取名“OPENSTEP”,软件自由基金会OPENSTEP版本叫GNUStep。1996苹果公司开
- 一起来学Objective-C(1)——Window下开发环境安装和Hello World
ts_rfl
IOSmakefileshell扩展gcc编程语言
Objective-C是在C语言的基础上的扩展,是一种面向对象的编程语言。这里假设读者有面向对象的编程基础。1.下载并安装开发环境到http://www.gnustep.org/experience/Windows.html下载以下四个文件:PackageRequired?StableUnstableNotesGNUstepMSYSSystemRequired0.28.1-MSYS/MinGWSy
- Windows如何进行Object-C的开发
翔之光
iPhone应用
Windows下Object-C编译环境的搭建:1.下载并安装以下两个软件:GNUstepSystem(我用的版本是:gnustep-msys-system-0.25.1-setup.exe)GNUstepCore(我用的版本是:gnustep-core-0.25.0-setup.exe)下载地址:http://www.gnustep.org/experience/Windows.html安装方法
- AndroidStudio如何快速制作.so
白玉梁
AndroidAndroid笔记
之前写过一篇Eclipse制作.so的文章,http://blog.csdn.net/baiyuliang2013/article/details/44306921使用的是GNUstep模拟Linux环境,过程现在看来是想相当麻烦,后来发现一个简单的方法就是通过项目右键添加NativeSupprot...可以快速创建.so而不使用命令行,由于AS越来越被大家使用,所以Eclipse的制作过程就不再
- objective-c中文教程
abbottduan
iPhone版块
開始吧下載這篇教學設定環境為了編譯GNUstep應用程式,必須先執行位於/usr/GNUstep/System/Makefiles/GNUstep.sh的GNUstep.sh這個檔案。這個路徑取決於你的系統環境,有些是在/usr,some/usr/lib,有些是/usr/local。如果你的shell是以csh/tcsh為基礎的shell,則應該改用GNUStep.csh。建議把這個指令放在.ba
- XP系统上运行objective-c程序
allhopeisgone
学习笔记
首先需要在http://www.gnustep.org/网站上,下载4个安装程序:UstepMSYSSystem、GNUstepCore、GNUstepDevel、CairoBackend。然后依次安装完毕文件可以借助各种编程工具进行编写编写好的文件用“.m”后缀放入默认路径为“C:\GNUstep\home\Administrator”的文件夹内。这里比较重要的是需要一个make配置文件,名字必
- Linux Object-C 编译环境安装
Rex
Tools&Software
原文:http://www.techotopia.com/index.php/Installing_and_Using_GNUstep_and_Objective-C_on_Linuxsudoapt-getinstallgnustepsudoapt-getinstallgnustep-develsudoapt-getinstallgobjc./usr/share/GNUstep/Makefiles
- Objective-C 内存管理之alloc/retain/release/dealloc实现原理
weixin_34329187
GNUstep开源框架的实现以GNUstep开源框架为例(与Foundation框架相类似)/***Allocatesanewinstanceofthereceiverfromthedefault*zone,byinvoking+allocWithZone:with*NSDefaultMallocZone()asthezoneargument.*Returnsthecreatedinstance.
- NSOperation, NSOperationQueue 原理探析
weixin_34150830
通过GNUstep的Foundation来尝试探索下NSOperation,NSOperationQueue示例程序写一个简单的程序-(void)viewDidLoad{[superviewDidLoad];//Doanyadditionalsetupafterloadingtheview,typicallyfromanib.[selfconfigurationQueue];LDNSOperati
- Linux下的objective-c 的简单使用和一些问题
葫芦娃二娃
unix编程杂谈
我是ubuntu16.04,官方教程如下:https://www.techotopia.com/index.php/Installing_and_Using_GNUstep_and_Objective-C_on_Linux使用这个教程必须安装sudoaptinstallgobjcgobjc++gnustep-makegnustep-devel安装完后配置编译环境:./usr/share/GNUst
- GNUstep在win7的sublime下编译OC
安徒生_
基础知识
1、安装GNUstep:官网上写GNUstep需在MinGW下运行,但我原来装过MinGW,所以不知道如果不装的话,会有什么后果。GNUsteprunsonwindowsthoughtheMinGWenvironment.Generatedapplications,eveniftargetedstand-alone,willrequireMinGWtorun.Werecommendtoinstal
- ztree设置禁用节点
3213213333332132
JavaScriptztreejsonsetDisabledNodeAjax
ztree设置禁用节点的时候注意,当使用ajax后台请求数据,必须要设置为同步获取数据,否者会获取不到节点对象,导致设置禁用没有效果。
$(function(){
showTree();
setDisabledNode();
});
- JVM patch by Taobao
bookjovi
javaHotSpot
在网上无意中看到淘宝提交的hotspot patch,共四个,有意思,记录一下。
7050685:jsdbproc64.sh has a typo in the package name
7058036:FieldsAllocationStyle=2 does not work in 32-bit VM
7060619:C1 should respect inline and
- 将session存储到数据库中
dcj3sjt126com
sqlPHPsession
CREATE TABLE sessions (
id CHAR(32) NOT NULL,
data TEXT,
last_accessed TIMESTAMP NOT NULL,
PRIMARY KEY (id)
);
<?php
/**
* Created by PhpStorm.
* User: michaeldu
* Date
- Vector
171815164
vector
public Vector<CartProduct> delCart(Vector<CartProduct> cart, String id) {
for (int i = 0; i < cart.size(); i++) {
if (cart.get(i).getId().equals(id)) {
cart.remove(i);
- 各连接池配置参数比较
g21121
连接池
排版真心费劲,大家凑合看下吧,见谅~
Druid
DBCP
C3P0
Proxool
数据库用户名称 Username Username User
数据库密码 Password Password Password
驱动名
- [简单]mybatis insert语句添加动态字段
53873039oycg
mybatis
mysql数据库,id自增,配置如下:
<insert id="saveTestTb" useGeneratedKeys="true" keyProperty="id"
parameterType=&
- struts2拦截器配置
云端月影
struts2拦截器
struts2拦截器interceptor的三种配置方法
方法1. 普通配置法
<struts>
<package name="struts2" extends="struts-default">
&
- IE中页面不居中,火狐谷歌等正常
aijuans
IE中页面不居中
问题是首页在火狐、谷歌、所有IE中正常显示,列表页的页面在火狐谷歌中正常,在IE6、7、8中都不中,觉得可能那个地方设置的让IE系列都不认识,仔细查看后发现,列表页中没写HTML模板部分没有添加DTD定义,就是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3
- String,int,Integer,char 几个类型常见转换
antonyup_2006
htmlsql.net
如何将字串 String 转换成整数 int?
int i = Integer.valueOf(my_str).intValue();
int i=Integer.parseInt(str);
如何将字串 String 转换成Integer ?
Integer integer=Integer.valueOf(str);
如何将整数 int 转换成字串 String ?
1.
- PL/SQL的游标类型
百合不是茶
显示游标(静态游标)隐式游标游标的更新和删除%rowtyperef游标(动态游标)
游标是oracle中的一个结果集,用于存放查询的结果;
PL/SQL中游标的声明;
1,声明游标
2,打开游标(默认是关闭的);
3,提取数据
4,关闭游标
注意的要点:游标必须声明在declare中,使用open打开游标,fetch取游标中的数据,close关闭游标
隐式游标:主要是对DML数据的操作隐
- JUnit4中@AfterClass @BeforeClass @after @before的区别对比
bijian1013
JUnit4单元测试
一.基础知识
JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)@After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次
- 精通Oracle10编程SQL(12)开发包
bijian1013
oracle数据库plsql
/*
*开发包
*包用于逻辑组合相关的PL/SQL类型(例如TABLE类型和RECORD类型)、PL/SQL项(例如游标和游标变量)和PL/SQL子程序(例如过程和函数)
*/
--包用于逻辑组合相关的PL/SQL类型、项和子程序,它由包规范和包体两部分组成
--建立包规范:包规范实际是包与应用程序之间的接口,它用于定义包的公用组件,包括常量、变量、游标、过程和函数等
--在包规
- 【EhCache二】ehcache.xml配置详解
bit1129
ehcache.xml
在ehcache官网上找了多次,终于找到ehcache.xml配置元素和属性的含义说明文档了,这个文档包含在ehcache.xml的注释中!
ehcache.xml : http://ehcache.org/ehcache.xml
ehcache.xsd : http://ehcache.org/ehcache.xsd
ehcache配置文件的根元素是ehcahe
ehcac
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
白糖_
javaeclipsespringtomcatWeb
今天学习spring+cxf的时候遇到一个问题:在web.xml中配置了spring的上下文监听器:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
随后启动
- angular.element
boyitech
AngularJSAngularJS APIangular.element
angular.element
描述: 包裹着一部分DOM element或者是HTML字符串,把它作为一个jQuery元素来处理。(类似于jQuery的选择器啦) 如果jQuery被引入了,则angular.element就可以看作是jQuery选择器,选择的对象可以使用jQuery的函数;如果jQuery不可用,angular.e
- java-给定两个已排序序列,找出共同的元素。
bylijinnan
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CommonItemInTwoSortedArray {
/**
* 题目:给定两个已排序序列,找出共同的元素。
* 1.定义两个指针分别指向序列的开始。
* 如果指向的两个元素
- sftp 异常,有遇到的吗?求解
Chen.H
javajcraftauthjschjschexception
com.jcraft.jsch.JSchException: Auth cancel
at com.jcraft.jsch.Session.connect(Session.java:460)
at com.jcraft.jsch.Session.connect(Session.java:154)
at cn.vivame.util.ftp.SftpServerAccess.connec
- [生物智能与人工智能]神经元中的电化学结构代表什么?
comsci
人工智能
我这里做一个大胆的猜想,生物神经网络中的神经元中包含着一些化学和类似电路的结构,这些结构通常用来扮演类似我们在拓扑分析系统中的节点嵌入方程一样,使得我们的神经网络产生智能判断的能力,而这些嵌入到节点中的方程同时也扮演着"经验"的角色....
我们可以尝试一下...在某些神经
- 通过LAC和CID获取经纬度信息
dai_lm
laccid
方法1:
用浏览器打开http://www.minigps.net/cellsearch.html,然后输入lac和cid信息(mcc和mnc可以填0),如果数据正确就可以获得相应的经纬度
方法2:
发送HTTP请求到http://www.open-electronics.org/celltrack/cell.php?hex=0&lac=<lac>&cid=&
- JAVA的困难分析
datamachine
java
前段时间转了一篇SQL的文章(http://datamachine.iteye.com/blog/1971896),文章不复杂,但思想深刻,就顺便思考了一下java的不足,当砖头丢出来,希望引点和田玉。
-----------------------------------------------------------------------------------------
- 小学5年级英语单词背诵第二课
dcj3sjt126com
englishword
money 钱
paper 纸
speak 讲,说
tell 告诉
remember 记得,想起
knock 敲,击,打
question 问题
number 数字,号码
learn 学会,学习
street 街道
carry 搬运,携带
send 发送,邮寄,发射
must 必须
light 灯,光线,轻的
front
- linux下面没有tree命令
dcj3sjt126com
linux
centos p安装
yum -y install tree
mac os安装
brew install tree
首先来看tree的用法
tree 中文解释:tree
功能说明:以树状图列出目录的内容。
语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式
- Map迭代方式,Map迭代,Map循环
蕃薯耀
Map循环Map迭代Map迭代方式
Map迭代方式,Map迭代,Map循环
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年
- Spring Cache注解+Redis
hanqunfeng
spring
Spring3.1 Cache注解
依赖jar包:
<!-- redis -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
- Guava中针对集合的 filter和过滤功能
jackyrong
filter
在guava库中,自带了过滤器(filter)的功能,可以用来对collection 进行过滤,先看例子:
@Test
public void whenFilterWithIterables_thenFiltered() {
List<String> names = Lists.newArrayList("John"
- 学习编程那点事
lampcy
编程androidPHPhtml5
一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去
- 架构师之流处理---------bytebuffer的mark,limit和flip
nannan408
ByteBuffer
1.前言。
如题,limit其实就是可以读取的字节长度的意思,flip是清空的意思,mark是标记的意思 。
2.例子.
例子代码:
String str = "helloWorld";
ByteBuffer buff = ByteBuffer.wrap(str.getBytes());
Sy
- org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 1
Everyday都不同
$转义el表达式
最近在做Highcharts的过程中,在写js时,出现了以下异常:
严重: Servlet.service() for servlet jsp threw exception
org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1,
- 用Java实现发送邮件到163
tntxia
java实现
/*
在java版经常看到有人问如何用javamail发送邮件?如何接收邮件?如何访问多个文件夹等。问题零散,而历史的回复早已经淹没在问题的海洋之中。
本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获。看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助。
此篇仅介绍用
- 探索实体类存在的真正意义
java小叶檀
POJO
一. 实体类简述
实体类其实就是俗称的POJO,这种类一般不实现特殊框架下的接口,在程序中仅作为数据容器用来持久化存储数据用的
POJO(Plain Old Java Objects)简单的Java对象
它的一般格式就是
public class A{
private String id;
public Str