block

block的使用(二)

坚强是说给别人听的谎言 提交于 2019-12-10 05:41:29
typedef int INT; // 给 int 定义别名 INT typedef int ARR[ 4 ]; ARR a1; // 定义了一个长度为 4 的整形数组 //typedef 定义类型 // typedef 给基本数据类型 构造类型 枚举类型 函数指针 起别名 // 函数指针: 指向函数的指针 #import <Foundation/Foundation.h> int sum( int a, int b){ return a+b; } int main( int argc, const char * argv[]) { @autoreleasepool { // 调用函数 int s1 = sum ( 10 , 119 ); // 函数名存储的是函数的首地址 NSLog ( @"%d" ,s1); // 129 // 函数指针 p,p 指向的是 sum 函数的首地址 int (*p)( int a, int b); p = sum ; // 给 p 赋初始值 int s2 = (*p)( 10 , 119 ); NSLog ( @"%d" ,s2); // 129 typedef int (*p1)( int a, int b); // 给返回值是 int 并且有 2 个参数的函数起别名,别名是 p1 , p1 是一种类型 // 定义无参无返回值的 block 变量

block的使用(四)

◇◆丶佛笑我妖孽 提交于 2019-12-10 05:36:39
// Person.h #import <Foundation/Foundation.h> typedef void (^blockType)(); @interface Person : NSObject // 定义一个参数是 block 的方法 //- (void)test:(blockType) myblock; - ( void )test:( void (^)()) myblock; - ( blockType ) test2; @end // // Person.m #import "Person.h" @implementation Person - ( void )test:( blockType )myblock { myblock(); } - ( blockType )test2 { return ^{ NSLog ( @"test2" ); }; } @end // // main.m #import <Foundation/Foundation.h> #import "Person.h" // block 作为方法的参数,传递 block 参数 //void test(void(^myblock)()){ // // 调用 block // myblock(); //} // block 作为方法的返回值 //void (^)() test() { //

IOS--Block入门

不羁的心 提交于 2019-12-10 05:33:13
Block介绍 一:Block是一种具有匿名功能的内嵌函数,特性如下: (1):如一般函数能拥有带有型态的参数 (2):拥有回传值 (3): 可以获取和选择性地修改作用域的状态 二:Block的使用 Block可以简化代码块,适合用来建立一些同步执行的代码,封装一些小型的工作或是作为某项工作完成时的回传呼叫。 三:声明和创建Block; (1)用^来声明变量:返回值/声明方法/参数 1: /* 回传void ,参数也是void 的block*/ 2: void (^blockReturningVoidWithVoidArgument)( void ); 3: /* 回传整数,两个参数分别是整数和字元型态的block*/ 4: int (^blockReturningIntWithIntAndCharArguments)( int , char ); 5: /* 回传void ,含有10 个block 的阵列,每个block 都有一个型态为整数的参数*/ 6: void (^arrayOfTenBlocksReturningVoidWinIntArgument[ 10 ])( int ); 7: X.3.2 建立一个Block 8: 9: 我们使用「^」来开始一个block,并在最后使用「;」来表示结束,下面的范例示范了一个block变数

block的使用(六)

淺唱寂寞╮ 提交于 2019-12-10 05:24:47
#import <Foundation/Foundation.h> typedef void (^blockType)(); //1 )代码在 ARC 中 // 运行结果 VVVV i = 5 , //2) 代码在 MRC 中 // 运行结果 VVVV i = 5 ,但是用 analyze 分析, return bb ;有内存泄露。 MRC 下 bb 是栈 block , bb 在方法执行完成之后会被销毁掉 // 定义返回值是 block 类型的函数 blockType test() { int i = 5 ; blockType bb = ^{ NSLog ( @"VVVV i = %d" ,i); }; //return bb; return Block_copy (bb); // copy 拷贝一份 block , bb 位于堆区。 } int main( int argc, const char * argv[]) { @autoreleasepool { // 接收 test 的返回值 blockType b1 = test (); b1(); Block_release (b1); } return 0 ; } 来源: oschina 链接: https://my.oschina.net/u/2418942/blog/625790

BFC与IFC

て烟熏妆下的殇ゞ 提交于 2019-12-10 05:21:28
BFC与IFC 在我们做的网页上通常最重要的其中一点就是美观度,bfc他是一个块级格式化上下文,它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。 因为我现在天天在做网页了,之前没怎么关注bfc与ifc原理,以至于我做出来的网页有点偏差。所以要深刻学习以下知识。 bfc:指它里面的子元素不会影响到外面的元素 加上一个overflow:hilden该元素的子元素是一个bfc下面 只要触发的是个bfc那么它对外面都没有影响。 1.block-level box:display 属性为 block, list-item, table 的元素,会生成 block-level box。并且参与 block fomatting context; 2.inline-level box:display 属性为 inline, inline-block, inline-table 的元素,会生成 inline-level box。并且参与 inline formatting context; 块级元素,在浏览器中通常是垂直布局,然后可以用margin来控制块级元素之间的间距,并列和嵌套的块级元素都存在外边距,也就是margin合并的问题。 而行内元素是以水平的方式布局,垂直方向的margin

Wrap perl's sort function in an object

二次信任 提交于 2019-12-10 04:38:51
问题 I'm trying to make a sort function available in one of my (object-oriented) packages that accepts a block and makes available $a and $b like the standard Perl sort . First, a simplified version of what I'm trying to do in the package that contains the wrapped sort function: # In package My::Object sub sort { my $self = shift; my $block = \&{shift @_}; return sort $block @{$self->{arrayRef}}; # I want to use the passed in block with array data contained in this object } And then an example of

MJ_block(2)

怎甘沉沦 提交于 2019-12-09 13:58:32
1.block的copy 在 ARC环境 下,编译器会在以下情况下 自动 将栈上的block复制到堆上 block作为函数的返回值 typedef void (^MJBlock)(void); MJBlock myblock(int age) { return ^{ NSLog(@"---------%d",age); }; } int main(int argc, const char * argv[]) { @autoreleasepool { int age = 10; NSLog(@"%@", [myblock(age) class]); } return 0; } //打印:__NSMallocBlock__ //当然,如果myblock没有捕获age的话,打印__NSGlobalBlock__ 将block赋值给 __strong 指针 int main(int argc, const char * argv[]) { @autoreleasepool { int age = 10; typedef void (^MJBlock)(void); MJBlock block = ^{ NSLog(@"---------%d", age); }; NSLog(@"赋值给__strong指针:%@", [block class]); NSLog(@"未赋值给_

HDFS原理讲解

你离开我真会死。 提交于 2019-12-09 13:12:23
简介 本文是笔者在学习HDFS的时候的学习笔记整理, 将HDFS的核心功能的原理都整理在这里了。 【广告】 如果你喜欢本博客,请点此查看本博客所有文章: http://www.cnblogs.com/xuanku/p/index.html HDFS的基础架构 见下图, 核心角色: Client, NameNode, Secondary NameNode, DataNode Client: 对用户提供系列操作工具&API NameNode: 包含 map<filename, list<block_id>> , 以及 map<block_id, list<DataNode>> 的数据结构 资源分配算法 DataNode: 管理好自己的磁盘, 上报数据给NameNode 读取过程 Client向NameNode读取数据分布式信息 Client找到第一个数据块离自己最近的DataNode 跟这个DataNode交互并获取数据 读完之后开始跟下一个数据块离自己最近的DataNode交互 读完之后close连接 如果读取过程中读取失败, 将会依次读取该数据块下一个副本, 失败的节点将被记录, 不再连接 近的判断标准(NetworkTopology.sortByDistance): 如果客户端和某个Datanode在同一台机器上, 优先 如果客户端和某个Datanode在同一个rack上,

How do I run multiple lines of Ruby in html.erb file

瘦欲@ 提交于 2019-12-09 07:43:08
问题 I'm using Ruby on Rails and need to run a block of Ruby code in one of my html.erb files. Do I do it like this: <% def name %> <% name = username %> <%= name %> or like this: <% def name name = username %> <%= name %> Thanks for reading. 回答1: It is unusual to define a method in an ERB file, so I recommend against it. If you want to call a block like #each , you can do something like the following: <% names.each do |name| %> <%= name %> <% end %> Don't forget the <% end %> . 回答2: If you need

SignalR Connection Blocked Until page images load

三世轮回 提交于 2019-12-09 06:11:26
this is my signalr hub connection : chat = $.connection.chat; $.connection.hub.start().done(function () { // problem is here // this part is waiting for full page load.! }); why signalr connection waits for my page contents to load complete? i have a <img src='BAD SERVER'/> sometimes take 2 minutes to load successfully. and the connection is waiting for images loaded.! how can i fix this problem ? Try this: chat = $.connection.chat; $.connection.hub.start({ waitForPageLoad: false }).done(function () { // problem is here // this part is waiting for full page load.! }); 来源: https://stackoverflow