OC
文章平均质量分 82
丁小未
热爱游戏开发,热爱Coding!
展开
-
OC正式协议和非正式协议的区别
最近看了些关于objective-c的正式协议和非正式协议的内容,发现还是有些混乱,可能是因为还不熟悉OC,对正式协议和非正式协议的使用还不是很熟练,所以想整理一下非正式协议,是使用类别category来实现,非正式协议是NSObject的一个类别,这样任何类的对象都可以作为委托对象来使用,它可以列出对象能够执行的所有方法,这样用来实现委托, 我们可以使用选择器来判断该非正式协议中是否有这转载 2013-09-02 15:39:25 · 1779 阅读 · 0 评论 -
旅游景点人物进出系统[OC项目]
要求:展览中心有2条入场通道,在入场处需要登记入场人员的姓名,年龄以及电话。展览中心最多只能容纳100人。当展览中心满员时应当立即通知门卫不再允许人员入场。当有人员出场时才会允许人员入场,但同时在展览中心的人员不会超过100人。当展览中心关闭后,输出所有入场过的人员信息。需要实现以下功能:a.用户在做任一操作时,有入场,退场,输出所有人员信息的选项b.选择入场,登记人员的姓名,年龄以及电话,原创 2013-08-02 10:37:53 · 1711 阅读 · 0 评论 -
对象的动态和静态构造创建的区别
Student.h:#import @interface Student : NSObject@property(nonatomic,retain) NSString * name;@property(nonatomic,assign) int age;@endStudent.m:#import "Student.h"@implementation Student/原创 2013-07-29 12:38:22 · 1884 阅读 · 0 评论 -
IOS中类和对象还有,nil/Nil/NULL的区别
类与对象的概念类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法)。对象是类的一个实例,是一个具体的事物。类与对象是抽象与具体的关系。类其实就是一种数据类型,它的变量就是对象。类与类之间的关系——继承关系A是B如果这句话说的通,在设计程序的时候就可以看成是继承关系。例如:学生与小学生 小学生也是转载 2013-07-29 20:00:05 · 1658 阅读 · 0 评论 -
OC语法总结
1、定义类:@interface 类名 : 父类@end2、使用:(冒号)表示继承一个类Student : NSObject3、使用()定义一个Catagory(类别)* 作用:在不改变原有类结构的基础上,扩展原有类的方法(不能扩展属性),但不建议重载原有类的方法* 开发工具默认生成的文件为:类名+Catagory名称* Catago转载 2013-07-28 14:09:39 · 1613 阅读 · 0 评论 -
@property中strong跟weak的区别
strong关键字与retain关似,用了它,引用计数自动+1,用实例更能说明一切 @property (nonatomic, strong) NSString *string1; @property (nonatomic, strong) NSString *string2; 有这样两个属性, @synthesize string转载 2013-08-03 11:17:05 · 1401 阅读 · 0 评论 -
Foundation-结构体
#import void test(){ //定义一种结构体 struct Date{ int Year; int Month; int Day; }; struct Date d={2013,5,4}; d.Day=5;}void test1(){ //宏定义 typedef str原创 2013-08-02 15:40:24 · 1335 阅读 · 0 评论 -
NSArray各种遍历
Student.h:#import @interface Student : NSObject+(id)student;-(void)test;@endStudent.m:#import "Student.h"@implementation Student+(id)student{ return [[[Student alloc] init] autorele原创 2013-08-02 15:38:38 · 2335 阅读 · 0 评论 -
NSMutableArray
Student.h:#import @interface Student : NSObject@property(nonatomic,assign) int age;+(id)studentWithAge:(int)age;@endStudent.m:#import "Student.h"@implementation Student+(id)studentWithAg原创 2013-08-02 15:33:24 · 1412 阅读 · 0 评论 -
内存管理2对象之间的内存管理
Book.h:#import @interface Book : NSObject@property float price;-(id)initeWithPrice:(float)price;@endBook.m:#import "Book.h"@implementation Book#pragma mark 构造方法-(id)initeWithPrice:(floa原创 2013-08-02 15:01:42 · 1061 阅读 · 0 评论 -
内存管理1retain和release
Student.h:#import @interface Student : NSObject@property int age; //默认会生成一个_age属性@endStudent.m:#import "Student.h"@implementation Student//@synthesize age=_age;//xcode4.5中可以不使用synth原创 2013-08-02 14:57:56 · 1128 阅读 · 0 评论 -
关于OC对象拷贝的问题
先来打一下实例:创建一个Person类:Person.h:#import @interface Person : NSObject@property(nonatomic,assign) int age;@property(nonatomic,retain) NSString *name;@endPerson.m:#import "Person.h"@原创 2013-08-05 11:41:21 · 1465 阅读 · 0 评论 -
Protocol 模拟UI中一个按钮点击改变lable中的值
要求:在一个UIView界面中又一个lable和Button,想点击按钮之后改变lable的值,用协议委托实现Protocol(ChangeText.h):#import @protocol ChangeText -(void)change:(NSString *)val;@endButton.h:#import #import "ChangeText.h"@int原创 2013-08-05 17:45:07 · 1571 阅读 · 0 评论 -
Protocol协议 按钮点击
要求:用协议模拟实现按钮的点击事件Button.h#import @class Button;//<>表示实现了某个协议@protocol ButtonDelegate -(void)onClick:(Button *)btn;@end@interface Button : NSObject//delegate就是按钮的监听器 <>里面就是指上面的那个协议@prop原创 2013-08-02 14:48:23 · 1380 阅读 · 0 评论 -
OC面试题[搜集]
浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身。//通过对象的指针来访问这个对象深层复制(mutableCopy):复制引用对象本身意思就是有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源还是只有一份,那如果我们对A_cop转载 2013-09-02 15:34:05 · 1767 阅读 · 0 评论 -
[c/c++/OC]高质量的面试题及答案及注解
一、 选择题1. 声明语句为int a[3][4]; 下列表达式中与数组元素a[2][1]等价的是( )。A、*(a[2]+1) B、a[9] C、*(a[1]+2) D、*(*(a+2))+1 2.请问经过表达式a = 5 ? 0 : 1的运算,变量a的最终值是( )A.6 B.1 C.0 D.true原创 2013-10-08 16:44:13 · 9076 阅读 · 1 评论 -
[OC]正则表达式简单应用
NSString * text = @"我正在#上课#,@麻子 你们在@我 吗?http://www.baidu.com";//\w匹配的是字母或者数字或者下划线或汉字//找到的是@之后一直到空格结束的字符串NSString * regex = @"@\\w+"; //检索出@麻子,@我//找到的是#***#这种类型的字符串NSString * regex = @"#\\w+#";原创 2013-10-06 09:21:06 · 3809 阅读 · 0 评论 -
OC学习笔记[注意事项]
alloc new retain之后都必须要调用release方法 计数器要变只有这几种方法 retain release alloc new copy方法才会使计数器改变,谁想用人家对象,就对他进行retain操作,但在dealloc释放本对象的时候也释放引用的对象,先释放引用的对象,然后释放自己,内存管理做到”谁污染谁治理“,谁调用谁retain,是销毁 也要销毁retain的对象原创 2013-08-01 16:16:34 · 1444 阅读 · 0 评论 -
OC中多线程的创建方法
方法一:NSThread *t = [[NSThread alloc] initWithTarget:self selector:@selector(mutableThread) object:nil];方法二:[NSThread detachNewThreadSelector:@selector(mutableThread) toTarget:self withObject:nil]原创 2013-08-15 15:45:52 · 4846 阅读 · 0 评论 -
NSDate
1 // 2 // main.m 3 // NSDate 4 // 5 // Created by dingxiaowei on 13-5-17. 6 // Copyright (c) 2013年 dingxiaowei. All rights reserved. 7 // 8 9 #import 10 11 #pragma mark - 日期创建12 void d原创 2013-08-01 21:37:13 · 1184 阅读 · 0 评论 -
OC读取plist文件
OC读取plist文件:#import int main (int argc, const char * argv[]){ @autoreleasepool { NSArray * arr = [NSArray arrayWithContentsOfFile:@"/Users/zl201/Desktop/NSDictionaryHomework转载 2013-08-08 19:23:54 · 3203 阅读 · 0 评论 -
C/C++/OC自测题
C++:1.String 的具体实现已知String类定义如下:class String{ public: String(const char *str = NULL); // 通用构造函数 String(const String &another); // 拷贝构造函数 ~ String(); // 析构函数 String & o原创 2013-08-07 17:19:18 · 2294 阅读 · 0 评论 -
2013-8-5学习练习 协议
1浅拷贝和深拷贝的区别和相同点;浅拷贝就比如像引用类型,而深拷贝就比如值类型。浅拷贝是指源对象与拷贝对象共用一份实体,仅仅是引用的变量不同(名称不同)。对其中任何一个对象的改动都会影响另外一个对象。深拷贝是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。2用什么方法可以生成一个完全相同的可变数组(1)给你一个不可变数组(2)给你一个可变对象;原创 2013-08-07 12:51:30 · 1294 阅读 · 0 评论 -
iOS学习之 plist文件的读写
在做iOS开发时,经常用到到plist文件, 那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件。文件是xml格式的。Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息我们创建一个项目来学习plist文件的读写。转载 2013-08-18 12:14:35 · 1357 阅读 · 0 评论 -
Socket通信
SocketServer:#include #include #include #include #include #include #include #include #include #define SERVPORT 3333 /*服务器监听端口号 */#define BACKLOG 10 /* 最大同时连接请求数 */#define MAXDATASIZ原创 2013-08-02 14:31:54 · 1707 阅读 · 0 评论 -
@property
在XCode4.5以上,写了@property之后,系统会自动生成私有_字段和实现@synthesize方法但如果自己写了set或者get方法之后,就不会帮你产生默认的下划线字段Student.h:#import @interface Student : NSObject{ @public //以下就是共有类型 还有@private和@protected in原创 2013-08-03 11:14:46 · 1387 阅读 · 0 评论 -
NSDictionary
1 // 2 // main.m 3 // NSDictionary 4 // 5 // Created by dingxiaowei on 13-5-15. 6 // Copyright (c) 2013年 dingxiaowei. All rights reserved. 7 // 8 9 #import 10 #import "Student.h原创 2013-08-01 21:29:13 · 1664 阅读 · 0 评论 -
OC中静态构造和动态构造的区别
Student.h:#import @interface Student : NSObject@property(nonatomic,retain) NSString * name;@property(nonatomic,assign) int age;@endStudent.m:#import "Student.h"@implementation原创 2013-08-01 21:41:54 · 2055 阅读 · 0 评论 -
IOS开发笔记
1 iphone开发笔记 2 3 退回输入键盘 4 - (BOOL) textFieldShouldReturn:(id)textField{ 5 [textField resignFirstResponder]; 6 } 7 8 CGRect 9 CGRect frame = CGRectMake (origin.x, orig转载 2013-08-01 21:39:11 · 5016 阅读 · 0 评论 -
copy--mutableCopy用法(important)
1 // 2 // main.m 3 // cope-MultableCopy 4 // 5 // Created by dingxiaowei on 13-5-19. 6 // Copyright (c) 2013年 dingxiaowei. All rights reserved. 7 // 8 9 #import 10 #import "Stud原创 2013-08-01 21:38:06 · 1315 阅读 · 0 评论 -
NSArray排序
main函数: 1 // 2 // main.m 3 // NSArray排序 4 // 5 // Created by dingxiaowei on 13-5-13. 6 // Copyright (c) 2013年 dingxiaowei. All rights reserved. 7 // 8 9 #import 10 #impor原创 2013-08-01 21:28:08 · 1558 阅读 · 0 评论 -
NSURLRequest
//获取网页html NSURL* url = [NSURL URLWithString:@"http://www.baidu.com"]; NSMutableURLRequest* request = [NSMutableURLRequest new]; [request setURL:url]; [request setHTTPM原创 2013-08-01 21:41:15 · 1159 阅读 · 0 评论 -
NSValue
如何将非OC对象封装成OC对象,塞给数组等 1 // 2 // main.m 3 // NSValue 4 // 5 // Created by dingxiaowei on 13-5-17. 6 // Copyright (c) 2013年 dingxiaowei. All rights reserved. 7 // 8 9 #import 10 11原创 2013-08-01 21:36:30 · 1350 阅读 · 0 评论 -
NSMutableDictionary
1 // 2 // main.m 3 // NSMutableDictionary 4 // 5 // Created by dingxiaowei on 13-5-16. 6 // Copyright (c) 2013年 dingxiaowei. All rights reserved. 7 // 8 9 #import 10 #import "Student.h"原创 2013-08-01 21:35:39 · 1319 阅读 · 0 评论 -
OC异常处理
Person.h:#import #import @interface Cup : NSObject{ int level; //成员变量-睡的深度值}-(int)level; //获取水的深度-(void)setLevel:(int)i; //设置水的深度值-(void)fill; //水的深度值增加10-(void)empty; //水的深度值减少10-(v原创 2013-07-31 19:16:16 · 1976 阅读 · 0 评论 -
OC多线程
技术要点:一 线程创建与启动线程类 NSThread包含如下线程操作方法: //返回当前线程+ (NSThread *)currentThread; // 通过类方法创建一个线程+ (void)detachNewThreadSelector:(SEL)selector toTarget:(id)target withObject:(id原创 2013-07-29 21:22:19 · 3320 阅读 · 0 评论 -
内存管理3@Property参数
Car.h:#import @interface Card : NSObject@endCar.m:#import "Card.h"@implementation Card-(void)dealloc{ NSLog(@"Card被销毁"); [super dealloc];}@endBook.h:#import @interface Boo原创 2013-08-02 15:06:23 · 1196 阅读 · 0 评论 -
NSNull
#import int main(int argc, const char * argv[]){ @autoreleasepool { //NSNull是单例的,创建很多变量其实它只指向一个对象 NSNull *null1=[NSNull null]; NSNull *null2=[NSNull null]; NSNu原创 2013-08-02 15:27:50 · 1221 阅读 · 0 评论 -
OC正式协议和非正式协议
最近看了些关于objective-c的正式协议和非正式协议的内容,发现还是有些混乱,可能是因为还不熟悉OC,对正式协议和非正式协议的使用还不是很熟练,所以想整理一下非正式协议,是使用类别category来实现,非正式协议是NSObject的一个类别,这样任何类的对象都可以作为委托对象来使用,它可以列出对象能够执行的所有方法,这样用来实现委托, 我们可以使用选择器来判断该非正式协议中是否有这转载 2013-08-03 11:14:23 · 1446 阅读 · 0 评论 -
Block
Button.h:#import @class Button;typedef void (^ButtonBlock) (Button *);@interface Button : NSObject@property(nonatomic,assign) ButtonBlock block;-(void)click;@endButton.m:#import "Butto原创 2013-08-02 15:51:14 · 1251 阅读 · 0 评论