自学知识总结

1.null_resettable 的意思就是set方法可以为空,但是get方法不能为空,例如视图控制器的view你可以赋值为空,但是只要你在调用self.view时,它就不为空了,或则你什么也不做系统也会默认给你创建view,因为get不能为空,毕竟set是赋值,但是get是获得值的.

2.什么是泛型

泛型就是你可以为一个类的方法所带的参数为特定类型,其格式如下例如

@interface  myFangXing<objectType> NSObject

-(void)myBook:(objType)books;

-(objectType)get:(int) sum;

那么不同的对象在调用这两个方法时就可以获得不同的参数,

myfFanXing<NSString*>*fangxing1 = [[myfFanXing alloc]init];

myfFanXing<NSArray*>*fangxing2 = [[myfFanXing alloc]init];

[fangxing1 myBook:(NSString*)];

[fanxing2 myBook:(NSArray*)];

3.状态栏是受最前面的控制器所控制的,

4.__iskindof 是说明返回的类型可以是它自己或则它的子类都可以

5.端口就是表示进程的,我们知道一个进程就是一个应用程序,例如我们要想找到百度服务器就要知道它的IP,但是我们知道百度肯定有很多应用程序,比如web应用程序,数据库应用程序,所以我们就需要端口来找到它们,因为web应用程序的端口默认为80,我们要访问的也是这个应用程序.这就是端口和IP,端口一般都要设置1024以上65535以下,因为1024以下的都被系统使用了.   socket其实就是两个应用程序通信的端口,好比通信隧道的入口和进口.
TCP是建立链接,进行大数据传输.因为要连接所以效率相对要低.但是对http请求影响不大几乎可以忽略.在进行 链接之前要进行三次握手. UDP不需要建立链接,将数据及源和目的打包成数据包,每个数据包大小限制在64kb之内.因为不安全所以传输小,这样可以每次只传一点,多传几次就好了.如果每次传的很多,因为它是不安全传输,所以每次传的太多可能传输失败了,所有的东西都失败了,因为不需要链接,所以是不可靠协议,当然其速度也快. TCP和UDP就是传输的方式不同而已.

6.使用GCDAsyncSocket框架实现socket点对点通信,

7.要使用终端输入以下内容, ‘telnet IP 端口”或则输入telnet + 域名 (也就是网址)+端口

8.长连接一般用在即时通信,短链接一般都是用在http访问网页时.

http协议也就是双方准守的数据传输格式 例如是中文还是英文.

xmpp即时通信协议官网http://xmpp.org 3920是其官方文档

9.TCP用什么方式传输的协议.例如 圆通.韵达之类

10.对socket进行封装的类有

11.GCDAsyncSocket框架

12.%d打印int  %zd打印nSInteger %p 打印地址

13.vFL (visual format languager) 语言就是”可视化格式语言” 这是苹果为了简化 autolayout 而推出的,

14.model 可以使用这个方法 [model setvalueforkeywithdictionary:dic]; 它会自动的为你生成属性的 set
方法;

15.自动布局的第三方框架 Masonry

16.正则表达式是改变不同类型的文本类型.

17.第一响应中

18.加载图片的两种方法比较 :

19.使用地图是一定要在info文件中加上NSLocationWhenInUseUsageDescription或者NSLocationAlwaysUsageDescription,选中哪一种就添加哪一种配置,

20.压缩的框架和方法

21.解压

22.在autolayout中leading指的是左边,traling指的是右边,

23.mineType就是文件类型,百度这个单词可以查找到所有文件的类型下面这两个方法可以选择一个去获得文件的类型

24.foundation框架下的字符串要转成 coreFoundation框架下的字符串,就要用到桥接__bridge,下图这个方法就是例子  桥接

25.关于自动释放池的释放和创建

26,使用NSURLConnection来进行大文件下载的代理方法

27.现在一般已经弃用NSURLConnection了,原因是它有很多坑,其中之一就是你要自己去将代理方法加到子线程中,第二,发送的请求如果加在子线程中要手动添加runLoop和停止runLoop,第三就是它也要根据文件的大小去选用不同的下载方式,

28.开始和停止runLoop的方法,其中要建立一个全局CFRunLoop,

29.使用NSURLSession发送post请求的方法

30.NSURLSession发送GET请求且不带请求头和请求体,因为一般带请求体和请求头的话最好用POST

31,移动文件路径的方法有下图,其中suggestedFilename是response自动帮我们拼接服务器文件的名字

32.对于网上所传的关于NSURLSession的创建方法中 NSURLSession*session = [NSURLSession sharesession];这个方法是不加代理的创建,所以如果想要签订代理,然后使用代理方法就要使用先创建NSURLSessionConfigurition这个配置的方法,

33.服务器返回的数据接收方式,默认为json

34.加载工程目录下的URL可以通过这两个方法都可以

//获取文件URL路径

NSString
*path = [[NSBundle

mainBundle]

pathForResource:@"msgcome"

ofType:@"wav"];

NSURL*url = [NSURL

URLWithString:path];

NSURL
*fileUrl = [[NSBundle

mainBundle]

URLForResource:@"msgcome.wav"

withExtension:nil];

35.当定义一个类方法的时候是没有办法访问它的成员变量,所以我们可以通过设置静态成员变量,来解决.static NSMutableDictionary*dictionary;

36,如果想要保存一个东西,记得创建一个字典或者数组保存,记得尽量用懒加载.

37.如果想给一个图片加毛玻璃效果可以用UIToolBar控件

38.commend+C,command+F,command+V,return依次点击上面几个命令可以查找本文件里这个复制的字段都是在那个地方

39.这是坏内存访问报错,一般都是控制器已经销毁了,你还去访问它的地址,,一般tableview刚开始有数据,你一滑动就没数据了,也可能是这个问题.

40.快捷地创建代码块,如果不想写死,可以使用<#内容#>这些就可以替代了.

40.SDWebImage清除缓存的方法
- (UITableViewCell
*)tableView:(UITableView
*)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath {

UITableViewCell
*cell = [tableView
dequeueReusableCellWithIdentifier:@"cell"];

if (cell ==

nil) {

cell = [[UITableViewCell

alloc]

initWithStyle:UITableViewCellStyleDefault

reuseIdentifier:@"cell"];

}

CGFloat
size = [SDImageCache sharedImageCache].getSize /
1000.0
/
1000;

cell.textLabel.text
= [NSString

stringWithFormat:@"清除缓存(已使用%.2fMB)",
size];

cell.accessoryType
=
UITableViewCellAccessoryDisclosureIndicator;

return
cell;

}

- (void)tableView:(UITableView
*)tableView didSelectRowAtIndexPath:(NSIndexPath
*)indexPath

{

[[SDImageCache sharedImageCache] clearDisk];

//    [[NSFileManager defaultManager] removeItemAtPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>];

}

41.点击按钮创建控制器时.我们可以使用这个方法减少代码量,

42.这个方法监视屏幕的旋转,   

43.一般加在控制器上的控制器,尽量使用这个方法

因为这样父控制器监听到的事件,就可以传给子控制器了,要不然它不会传的.

44.3D动画

45.通过xib加载的视图控制器的view一般默认都是长宽自由伸缩的,所以加上这个方法可以解决

46.static的作用

47.strong就是强引用,当你赋给属性一个对象给它之后,那么这个赋的对象就是strong这个属性了,你这个对象变了它也变,因为它俩变成一个对象了,

copy就是复制一份之后给属性,那么这个赋值的对象变了之后,这个属性也不会变.

48.加上static 那么这些常量只能在本文件使用了,如果不加全工程文件都能访问,如果是常量尽量使用const,因为这样不会创建临时内存,而宏会创建临时文件.

#import
<UIKit/UIKit.h>

typedef

enum {

WZCTopicTypeAll =
1,

WZCTopicTypePicture =
10,

WZCTopicTypeWord =
29,

WZCTopicTypeVoice =
31,

WZCTopicTypeVideo =
41

} WZCTopicType;

/**

精华-顶部标题的高度

*/

UIKIT_EXTERN

CGFloat
const
WZCTitilesViewH;

/**

精华-顶部标题的Y
*/

UIKIT_EXTERN

CGFloat
const
WZCTitilesViewY;

/**

精华-cell-间距

*/

UIKIT_EXTERN

CGFloat
const
WZCTopicCellMargin;

/**

精华-cell-文字内容的Y值

*/

UIKIT_EXTERN

CGFloat
const
WZCTopicCellTextY;

/**

精华-cell-底部工具条的高度

*/

UIKIT_EXTERN

CGFloat
const
WZCTopicCellBottomBarH;

/**

精华-cell-图片帖子的最大高度

*/

UIKIT_EXTERN

CGFloat
const
WZCTopicCellPictureMaxH;

/**

精华-cell-图片帖子一旦超过最大高度,就是用Break
*/

UIKIT_EXTERN

CGFloat
const
WZCTopicCellPictureBreakH;

#import

<UIKit/UIKit.h>

/**

精华-顶部标题的高度

*/

CGFloat

const
WZCTitilesViewH =
35;

/**

精华-顶部标题的Y
*/

CGFloat

const
WZCTitilesViewY =
64;

/**

精华-cell-间距

*/

CGFloat

const
WZCTopicCellMargin =
10;

/**

精华-cell-文字内容的Y值

*/

CGFloat

const
WZCTopicCellTextY =
60;

/**

精华-cell-底部工具条的高度

*/

CGFloat

const
WZCTopicCellBottomBarH =
40;

/**

精华-cell-图片帖子的最大高度

*/

CGFloat

const
WZCTopicCellPictureMaxH =
1000;

/**

精华-cell-图片帖子一旦超过最大高度,就是用Break
*/

CGFloat

const
WZCTopicCellPictureBreakH =
250;

时间: 2024-08-24 17:23:10

自学知识总结的相关文章

自学知识(二)

1.判断ipad还是iphone来设置表视图行高的尺寸: 1 self.tableView.rowHeight = [[UIDevice currentDevice].model hasSuffix:@"iPad"] ? 60.0 : 44.0; 2.富文本显示文字和图片: 1 NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:@"&quo

自学知识(四)

1.解决循环引用: __weak __typeof(self) weakSelf = self; 2.设置segmentedControl: 1 NSArray *segmentedArray = [[NSArray alloc]initWithObjects:@"国内",@"国外",nil]; 2 _segmentedControl = [[UISegmentedControl alloc]initWithItems:segmentedArray]; 3 _seg

没有人比你更在乎你的未来--李开复

如果你对未来迷茫,希望你能把握时间,找到自己的天赋和兴趣.这样,你在大学毕业的时候,才会真正拥有一片充满自信的天空. 我很喜欢英国小说家狄更斯的作品.他写过一部短篇小说叫<圣诞欢歌>,故事讲的是一位本性善良,但因为受环境影响,变得非常小器.吝啬.刻薄的商人,他在平安夜被三个精灵分别带到了自己过去.现在和未来的生活场景,看到了未来的自己,并因此彻底醒悟,领会到生活的意义,决心改过自新. 这个故事告诉我们,假如能看到未来的你可能变成什么样,许多人也许就不会按照现在的方式去生活.四年后,你们中的一些

智能家居项目(1):软件开发流程

结合公司开发过的产品以及对自学知识的总结,整理出此系列文章  .侧重点还是在软件部分. 公司开发某个项目,肯定是为了盈利赚钱.开发的项目无非就是自己的产品或者承接甲方的开发任务. 大体的流程可以分为几个部分或阶段: 1.需求说明书 预期想要一个什么功能,达到什么样的效果.有的客户也说不明白具体的东西,描述不清.需要加强沟通交流,确定最终的模型.一般情况下是甲方就提供好了的.关键部分大致如下: 监控功能 监控室内温度,监控红外传感器,以阻塞或异步的方式对红外传感器进行检测,如果红外传感器探测到有不

人工智能改进传统云ERP的10种方法

http://blog.itpub.net/31542119/viewspace-2168809/ 随着数字化转型的进程加快,企业开始重新评估ERP的作用.传统ERP经过多年僵硬化定制过于追求生产的一致性,而忽视了客户的需求变化,导致系统缺乏灵活性,已经无法满足当今数字业务模型的增长需求.目前,人工智能(AI).机器学习发展迅速,成为了很多企业的必备帮手,云ERP供应商要想解决传统ERP系统的问题,或许需要这两大王者的帮助! 用更高的智慧和洞察力挽救传统ERP系统 要想新的商业模式取得成功,企业

如何系统、科学地自学编程知识?

虽然不是码农,但是一直都有一颗码农的心.所以一直想学好怎么编程. 先说下自己的背景吧:已经毕业若干年工科男,所以基础知识也就是大学里谭浩强的那本绿壳的 C 语言.但是除了基本的变量.数组.选择.循环,到了指针那就记不清了. 然后因为工作需要,自己学了下 Linux 的 Shell 编程(Linux 系统的基础知识很一般),以及 W3School 里面 HTML, CSS 及 PHP 的部分内容.数据库的知识仅限于基础的 selecet, insert, update 操作.最后抄抄改改做了个功能

零基础自学编程前需要知道的知识

你是否适合编程?学习编程后能做什么?如何选择编程语言?有哪些免费的线上学习网站推荐?今天这篇好文将那些自学编程前需要了解和思考的问题都记录下来,希望能给那些刚刚开始或正准备自学编程的朋友们带去一些启发. 你是否适合自学编程 自学编程会是一个漫长而艰辛的过程,在你信心满满地准备开始之前,不妨先问问自己下面这几个问题,来判断你是否真的适合自学编程呢? · 你是一个逻辑和抽象思维能力比较强的人吗? · 你是否愿意不断地去学习那些新的东西,而在大多数时间内你都需要去自学. · 当你遇到一些问题和困难的时

NO.1:自学tensorflow之路------神经网络背景知识

引言 从本周,我将开始tensorflow的学习.手头只有一本<tensorflow:实战Google深度学习框架>,而这本书又讲的非常粗浅.tensorflow中文社区中的翻译的谷歌官方教程十分详细,是自学tensorflow的好帮手,当然如果是英文熟手可以直接看谷歌官方给出的原版教程(博主英语是靠谷歌翻译和百度翻译救活的). 本篇博客主要讲述机器学习的发展过程,以及BP神经网络的主要内容.不涉及tensorflow的编程.具体BP神经网络tensorflow的实现将在下一篇博文中展示. 正

HTML基础知识自学教程

HTML 是用来描述网页的一套标记标签,是我们在web前端开发中的基础.下面PHP程序员雷雪松主要结合自己的经验给大家分享下HTML的基础知识,以及在自学过程中一些比较常用的和重要的HTML知识点. 基本标签创建一个HTML文档 <html></html>设置文档标题以及其他不在WEB网页上显示的信息 <head></head>将文档的题目放在标题栏中 <title></title>设置文档的可见部分 <body><