本文是我的IOS学习笔记,都是基础的知识点,在这里记录下方面以后查询。
1,UIScrollView视图类能完成滚动的功能。
示例如下:
UIScrollView *tableScrollView;
tableScrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];//窗口大小
tableScrollView.contentSize=CGSizeMake(640, 480);//设置内容视图的大小
tableScrollView.showsVerticalScrollIndicator=NO;
tableScrollView.showsHorizontalScrollIndicator=NO;
tableScrollView.delegate=self;
tableScrollView.bounces=NO;
tableScrollView.pagingEnabled=YES;
[self.view insertSubview:tableScrollView belowSubview:navigationBarView];
//在本类的navigationBarView视图下面插入tableScrollView视图
(void)scrollViewDidScroll:(UIScrollView *)scrollView;//正在发生滚动操作
(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;//滑动结束操作
2,NSThread多线程处理
参考技术博客 很好很强大大家可以看看。
[NSThread detachNewThreadSelector:@selector(函数名) toTarget:self withObject:参数(需要是一个对象)];
示例:
[NSThread detachNewThreadSelector:@selector(getPopularityData:) toTarget:self withObject:[NSNumber numberWithInt:1]];
3,新建一个类,完全服从父类
MessageView.h
#import <UIKit/UIKit.h>
#import “RefreshTableView.h”
@interface MessageView : RefreshTableView
@end
MessageView.m
#import “MessageView.h”
@implementation MessageView
@end
那么该类的头文件和实现文件都很简单。
4,父类视图初始化问题
在视图类地- (void)viewDidLoad函数中,最开始应该执行下面地语句:
[super viewDidLoad];
该语句执行其父类地viewDidLoad方法,会帮助我们做一些初始化地工作。不然,可能会使我们调用某些方法时发生错误。
5,消息通知NSNotificationCenter
用途:NSNotificationCenter是专门供程序中不同类间的消息通信而设置的。
注册通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mytest:) name:@” mytest” object:nil];
参数说明:
addObserver: 观察者,即在什么地方接收通知;
selector: 收到通知后调用何种方法;
name: 通知的名字,也是通知的唯一标示,编译器就通过这个找到通知的。
发送通知:调用观察者处的方法。
[[NSNotificationCenter defaultCenter] postNotificationName:@”mytest” object:searchFriendArray];
参数说明:
postNotificationName:通知的名字,也是通知的唯一标示,编译器就通过这个找到通知的。
object:传递的参数
[2013.5.15]增加:带参数的NSNotificationCenter使用方法:
一般在使用NSNotificationCenter的时候不使用参数,但是有些时候需要使用参数。
传递参数,此处示例传递一个数组tekubaArray:
[[NSNotificationCenter defaultCenter] postNotificationName:@”tekubaData” object:tekubaArray];
接收参数并获取传递的参数
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tekubaTest
name:@”tekubaData
”
object:nil];
postNotificationName:通知的名字,也是通知的唯一标示,编译器就通过这个找到通知的。
object:传递的参数
- (void) tekubaTest:(NSNotification*) notification
{
NSMutableArray* dataArray = [notification object];//通过这个获取到传递的对象
}
6,属性列表NSUserDefaults
当存放的数据量很少的时候,可以使用多行的键-值来保存和读取数据。
示例:
获取cUserId的信息
NSString *userNameId=[[NSUserDefaults standardUserDefaults] valueForKey:@”cUserId”];
保存一个kNumberLocationKey键为NumberLocation,值为123456的数据。
NSString *kNumberLocationKey = @”NumberLocation”;
NSString *saveNumber = @”123456″;
[[NSUserDefaults standardUserDefaults] setObject:saveNumber forKey:kNumberLocationKey];
7,ios编程中多个参数问题
-(void)createStreamer:(UIView *)view urlString:(NSString *)urlString
{
}
参数分别是view,和urlString
8,NSTimer定时器的使用
NSTimer其实是将一个监听加入的系统的RunLoop中去,当系统runloop到如何timer条件的循环时,会调用timer一次,当timer执行完,也就是回调函数执行之后,timer会再一次的将自己加入到runloop中去继续监听。
示例:
[NSTimer
scheduledTimerWithTimeInterval:1
target:self
selector:@selector(updateProgress:)
userInfo:view
repeats:YES];
参数说明:
scheduledTimerWithTimeInterval:(NSTimeInterval)seconds
预订一个Timer,设置一个时候间隔。
默示输入一个时候间隔对象,以秒为单位,一个>0的浮点类型的值,若是该值<0,体系会默认为0.1
target:(id)aTarget
默示发送的对象,如self
or:(SEL)aSelector
办法选择器,在时候间隔内,选择调用一个实例办法
userInfo:(id)userInfo
此参数可认为nil,当按时器失效时,由你指定的对象保存和开释该按时器。
repeats:(BOOL)yesOrNo
当YES时,按时器会络续轮回直至失效或被开释,当NO时,按时器会轮回发送一次就失效。
invocation:(NSInvocation *)invocation
9,xcode输出窗口打印NSData数据
NSData *tempData;//假设tempData已经填充数据
NSLog(@”\n%@\n”,[[NSString alloc] initWithData:tempData encoding:NSUTF8StringEncoding]);//打印数据获取数据,经过测试可以正确打印出tempData中的字符串。
当然,也可以使用NSLog(@”\n%@\n”, tempData);//直接打印,测试打印的结果时16进纸的形式