UIWebView 加载本地的html文件 - (void)viewDidLoad{ [superviewDidLoad];// Do any additional setup after loading the view, typically from a nib. NSString *appPath = NSHomeDirectory(); //获取app路径 NSBundle *b
iOS写文件日志实现 #import #define HHCLog(formatter,...) [[HCLog shareInstance]write:formatter,##__VA_ARGS__]@interface HCLog : NSObject+(HCLog*)shareInstance;-(BOOL)write:(NSString *)format,...;
IOS 单例或者单件实现 ///单件实现////.h文件@interface singleton:NSObject{ static singleton* _singleton;}-+(singleton*)GetInstance; //类方法@end///.m文件@implemetation singletonstaitc singleton::_singleton=n
memento备忘录 (C++)实现 // memento.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include //memento模式的C++实现,改模式实现状态回滚,类似于文本编辑器的undo,或者数据的回滚功能。//有相关应用的都可以通过memento模式来实现using namespace std;class iMememto;cla
关键字volatile有什么含义?并给出三个不同例子? 一个定义为volatile的变量是说这个变量可能会被 意想不到的改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:并发设备的硬件寄存器(如:状态寄存器)一个中断服务子程序中会访问到的非自动变量(non-automatic variables)
堆和栈的区别? 管理方式:对于栈来讲,是由编译器自动管理,无需我们手动控制;对于堆来说,释放工作由程序员控制,容易memory leak。申请大小:栈:在windows下,栈是向低地址扩展的数据结构,是一块连续的内存区域。这句话的意思是栈顶地址和栈的最大容量是系统预先规定好的,在windows下,栈的大小是2M(也有的说是1M,总之是在编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将
object-c,线程和进程的区别? 进程和线程都是有操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应的并发性。进程和线程的主要区别在于他们是不同的操作系统资源管理方式,而线程只是一个进程中不同的执行路径。线程有自己的堆栈和局部变量,但线程之间没有独立的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要
#import 和#include的区别,@class代表什么? @class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文件中还需要使用#import而#improt比起#include的好处就是不会引起重复包含
objective-c有私有的方法吗?私有变量呢? objective-c类里面的方法只有两种,静态方法和实例方法。这似乎就是不完整的面向对象了,按照oo的原则就是一个对象只暴露有用的东西。如果没有私有方法的话,对于一些小范围的代码重用就不那么顺手了在类里面声明一个私有方法@interface Controller:NSObjec{NSString* something;}+(void)thisIsAStaticMethod;-
Objective c有多继承吗?没有的话用什么代替? cocoa中所有的类都是nsobject的子类多继承在这里是用protocal委托代理来实现的你不用去考虑繁琐的多继承,虚基类的概念ood的多态特性在obj-c中通过委托实现。
类别的作用? 有时我们需要在一个已经定义好的类中增加一些方法,而不想去重新写该类。比如当工程已经很大,代码量比较多,或者类中已经抱住很多方法,已经有其他代码调用了该类创建对象并使用该类的方法时,可以使用类别对该类的扩充新的方法。注意:类别只能扩充方法,而不能扩充成员变量。委托(举例)委托代理(degegate),顾名思义,把某个对象要做的事情委托给别的对象去做。那么别的对象就是这个对象的
简述索引计数 retain值 = 索引计数(reference counting)NSArray对象会retain值加一,任何数组中的对象。当NSArray被卸载(delloc)的时候,所有数组中的对象会被执行一次释放(retain值减一)。不仅仅是NSArray,任何收集类(collection classes)都执行类似操作。例如NSDictionary,甚至UINavigationContro
内存管理autorelease,retain,copy,assign的set方法和含义? 1.你初始化(alloc/init)的对象,你需要释放(release)它。例如:NSMutableArray aArray=[[NSArray alloc]init];后,需要[aArray release];2,你的retain或者copy的,你需要释放它。例如:[aArray retain];后需要[aArray release];3,被传递(assign)的
id,nil代表什么? idid和void*并非完全一样。在上面的代码中,id是指向struct objc_object的一个指针,这个意思基本上说,id是一个指向任务一个继承了object(或者NSObject)类的对象。需要注意的是id是一个指针,所有你在使用id的时候不需要加星号。比如id foo=nil则定义了一个指针,这个指针指向另外一个指针,被指向的这个指针指向NSObject的一个子类。
kvc和kvo区别,分别在什么情况下使用? KVC(key-value-coding)KVO(key-value-Observing)理解KVC 和KVO(键-值-编码与键-值-监看)当通过KVC调用对象时,比如:[self valueForKey:@"somekey"]时,程序会自动试图通过几种不同的方法解析这个调用。首先查找对象是否带有somekey这个方法,如果没有找到,会继续查找对象是否是否嗲有somekey和个
怎么理解MVC,在Cocoa中MVC是怎么实现? MVC设计模式考虑三种对象:模型对象,视图对象,控制器对象。模型对象特别的需要知识和专业技能,它们负责保有应用程序的数据和定义操作数据的逻辑。视图对象知道如何显示应用程序的模型数据,而且可能允许用户对其进行编辑。控制器对象是应用程序的视图对象和模型对象之间的协调者。
viewController的didreceivememorywarning是在什么时候调用?默认的操作时什么? 当程序接到内存告警时viewController将会收到这个消息:didReceiveMemoryWarning从ios3.0开始,不需要重载这个函数,把释放内存的代码放到viewDidUnload中去。这个函数的默认实现是:检查cotroller是否可以安全释放它的view(这里加粗的view指的是controller的view属性),比如view本身没有superview并且可以很
OpenWrt网络配置(1) 网络配置文件放在/etc/config/network里面,被分为各个接口配置。接口配置不是以太网、wifi配置就是一个包含多个接口的“桥”。它看起来就是这样的: config interface "lan" option ifname "eth0" option proto "static" option ipaddr