11-30 k線圖demo中學到的零散知識

1. 使用NSObject類的方法performSelectorInBackground:withObject:來建立一個線程。java

具體的代碼:多線程

[Object performSelectorInBackground:@selector(doSomething:) withObject:nil];框架

 

2. 選擇使用NSThread實現多線程函數

NSThread建立主要有兩種方式:spa

1>. 線程

[NSThread detachNewThreadSelector:@selector(doSomething:) toTarget:self withObject:nil];orm

2>.內存

NSThread *myThread = [NSThread alloc]initWithTarget:self selector:@selector(doSomething:) object:nil];開發

[myThread start];get

這兩種方式的區別在於:

前一種調用就會當即建立一個線程並執行selector方法;第二種方式儘管alloc了一個新Thread,但須要手動調用start方法來啓動線程。這點與java建立線程的方法相似。

第一種方式,與上述作法1使用NSObject的類方法performSelectorInBackground:withObject:是同樣的;第二種方式的能夠在start真正建立線程以前對其進行設置,好比設置線程的優先級。

注意:

- (void)doSomething:(id)sender{

  NSAutoreleasePool *pool = [NSAutoreleasePool alloc]init];

  //執行你的代碼

  [pool release];

}

在多線程的執行方法doSomething中須要自行管理內存的釋放.不然可能會警告提示:

XXXXX nsthread autoreleased with no pool in place – just leaking

 <2>. iOS開發手勢gesture

myView -->添加myGestureRecognizer[target:myViewController  action respondToGesture] --> myViewController [respondToGesture]{}

UIKit框架提供了一些預約義的GestureRecognizer包含下列手勢

UITapGestureRecognizer敲擊手勢(單擊和雙擊)

UIPanGestureRecognizer(拖動手勢)

UIPinchGestureRecognizer(縮放手勢)

UISwopeGestureRecognizer(擦碰手勢)

UITotationGestureRecognizer(旋轉手勢)

-  (CGPoint)locationInView:(UIView *)view:函數返回一個CGPoint類型的值,表示觸摸在view這個視圖上的位置,這裏返回的位置是針對view的座標系的。調用時傳入的view參數爲空的話,返回的是觸摸點在整個窗口的位置

 

<3> 

相關文章
相關標籤/搜索