Xcode-01ARC / Block
1.nonatomic
2.assign
3.strong
4.weak
5.instancetype
6.@class @property
使部分类在编译时不使用ARC
-(可以让这们支持 retain release retainCount)
项目文件 - Build Phases - 找到.m文件双击 -加入Flags --->> -fno-objc-arc
让项目中的指定文件支持ARC 使用 -f-objc-arc (-f的意思是Flags)
将非ARC的项目转换为 ARC
Edit - Convert - To Objcetive-C ARC
ARC-处理循环引用
使用 weak 弱指针 一个用strong指针 一个用weak指针
Block (和函数类似-保存一段代码)
函数是在编译前就要将代码写好
void test()
{
NSLog(@“—————");
}
block是在程序运行时保存一段代码 指针的标识符是 * block的标识符是 ^ 也可以有型参 和 返回值
//定义了一个没有返回值 ,没有形参的 名为 myblock的 block 变量 block也是数据类型
void (^myblock)() = ^{
NSLog(@“———“);
NSLog(@“———“);
}; // 注意分号
// 利用block变量调用block内部的代码
my block(); // 调用方式与函数一样
带返回值和形参的 block 接收两个参数 返回两个参数的和
int (^sumblock)(int , int ) = ^(int a, int b){
return a+b;
};
int c = sumblock(,);
void test3()
{
int a = ;
__block int b = ; void (^block)(); block = ^{
// block内部可以访问外面的变量
//NSLog(@"a = %d", a); // 默认情况下,block内部不能修改外面的局部变量
// a = 20; // 给局部变量加上__block关键字,这个局部变量就可以在block内部修改
b = ;
}; block();
}
Block 使用 typedef
typedef int(^MyBlock)(int,int); #import <Foundation/Foundation.h>
#import "Person.h" int main(int argc, const char * argv[])
{
MyBlock sumBlock = ^(int a,int b)
{
return a+b;
};
int s = sumBlock(,); NSLog(@"sum = %d",s);
return ;
}
Xcode-01ARC / Block的更多相关文章
- xcode arc 下使用 block警告 Capturing [an object] strongly in this block is likely to lead to a retain cycle” in ARC-enabled code
xcode arc 下使用 block警告 Capturing [an object] strongly in this block is likely to lead to a retain cyc ...
- Objective-C中block的底层原理
先出2个考题: 1. 上面打印的是几,captureNum2 出去作用域后是否被销毁?为什么? 同样类型的题目: 问:打印的数字为多少? 有人会回答:mutArray是captureObject方法的 ...
- Xcode 快速开发 代码块
Xcode的代码片段(Code Snippets)创建自定义的代码片段,当你重用这些代码片段时,会给你带来很大的方便. 常用的: 1.strong:@property (nonatomic,stron ...
- duplicate symbols for architecture arm64 after xCode 8.0 update
Xcode IDE 从7.3.1 update 到 8.0 之后出现的问题 一个错误把我困扰了两天之久,最终找到解决办法我欣喜若狂. 错误发生原因:Xcode IDE 从7.3.1 update ...
- iOS-重回block小白之路
在我刚刚接触iOS开发的时候,是通过MJ老师讲的OC基础入门的,iOS圈的人应该基本都知道MJ大神吧,即便如此大神,讲解完block之后我依然感觉晕晕乎乎的,直到后来真正进公司做项目,依然感觉这是自己 ...
- Block产生的内存泄露,以及解决方法
前言: 在ARC(自动引用技术)前,Objective-c都是手动来分配释放 释放 计数内存,其过程非常复杂. ARC技术推出后,貌似世界和平了很多,但是其实ARC并不等同于Java或者C#中的垃圾回 ...
- iOS深入学习(Block全面分析)
本文翻译自苹果的文档,有删减,也有添加自己的理解部分. 如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block 为了方便对比,下面的代码我假设是写在ViewCon ...
- 超详细的Xcode代码格式化教程,可自定义样式
为什么要格式化代码 当团队内有多人开发的时候,每个人写的代码格式都有自己的喜好,也可能会忙着写代码而忽略了格式的问题. 在之前,我们可能会写完代码后,再一点一点去调格式,很浪费时间. 有了ClangF ...
- 设置一个顺手的Xcode
授权转载,作者:吴白(微博) 手指在键盘上飞速跳跃,终端上的代码也随着飞舞,是的这确实很酷.优秀的程序员总是这么一群人,他们不拘于现状,不固步自封,他们喜欢新奇的事,他们把自己发挥到极致. 指法攻略 ...
- iOS XCode启用/关闭Clang Warnings
前言:warnings是编码中很重要的一个环节,编译器给出合理的warning能帮助开发者找到自己代码的问题,防止很多bug产生. 默认用XCode创建一个工程,会自动开启一些重要的warnings ...
随机推荐
- Android学习(一)
#常见布局 ###线性布局 有一个布局方向,水平或者竖直 在竖直布局下,左对齐.右对齐,水平居中生效 在水平布局下,顶部对齐.底部对齐.竖直居中生效 权重:按比例分配屏幕的剩余宽度或者高度 ###相对 ...
- 有用的javascript外部文件或其他外部文件引用
1.<link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow' rel='stylesheet' type='text/ ...
- android 67 生成和解析xml
生成xml: package com.itheima.createxml; import java.io.File; import java.io.FileNotFoundException; imp ...
- GitHub与Versions
[第一步]建立先仓库 第一步的话看一般的提示就知道了,在github新建一个repository(谷歌可以解决),都是可视化的界面操作,所以难度不大.或者看这里:https://help.github ...
- VS中新建网站和新建项目web应用程序的区别?(实际应用总结一点)
1,在网站中是没有命名空间namespace这个概念的.例如公共类只有放在App_Code里(不但是公共类,所有的类都应放在这里),其他的类或者页面才可以引用.有using这个概念,但没有namesp ...
- A的ascll吗是多少?
//输入一个字符,返回他的ascll码 #include<stdio.h> int main() { char a; while(scanf("%c",&a)! ...
- 功能点分析法FPA笔记
转载请注明出处:http://www.cnblogs.com/lidabnu/p/5700412.html 主要参考资料来自百度文库:http://wenku.baidu.com/link?url=y ...
- [功能帮助类] 最新的Functions 类 (转载)
代码 using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptogr ...
- Activity以singleTask模式启动,intent传值的解决办法
转载请注明出处,谢谢http://blog.csdn.net/harryweasley/article/details/46557827 因为项目中,有一个消息推送的功能,每次推送一个消息,就会开启F ...
- 数据库性能高校:CPU使用过高(下)
CPU使用率过高的常见原因 查询优化器会尽量从CPU,IO和内存资源成本最小的角度,找到最高效的数据访问方式.如果没有正确的索引,或者写的语句本身就会忽略索引, 又或者不准确的统计信息等情况下,查询计 ...