摘要:
1、只有alloc, init, copy, mutablecopy, new和retain才算拥有一个对象,才有资格release。weak相当与assign,但是多了清0作用,strong相当于retain。2、方法中局部变量的alloc后,由于要将指针传递出去,所以无法在方法内和方法外release,所以用autorelease来解决这个问题。3、NSMutableArray每当add或remove一个对象时,会自动retain和release一次。4、stringWithFormat:默认返回autorelease类型,或者不用手动release的初始化都会默认返回autoreleas 阅读全文
摘要:
一、scrollView中有一个有用的属性:@property(nonatomic) BOOL scrollsToTop;即点击status bar后会滚动到最顶部,尤其在tableview时好用,当内容很多时,滑动也很费劲,时常需要方便的回到最顶部。其官方解释是这样的:scrollsToTopA Boolean value that controls whether the scroll-to-top gesture is effective@property(nonatomic) BOOL scrollsToTopDiscussionThe scroll-to-top gesture is 阅读全文
摘要:
阅读全文
摘要:
1、frame、bounds、transform...以其superView为参照系,superView左上角作为(0,0):view.frame = (origin,size) 为自身左上角相对superView左上角的坐标,用于调整自身在superview中的位置。view.center为view中心点坐标以自身为参照系,自身左上角为(0,0):view.bounds = (origin, size) ,origin =(0,0)用于调整当前view内的subview的位置。contentOffset为自身显示在屏幕内左上角相对自身整体的坐标。view.transform:scale是保持 阅读全文
摘要:
http://blog.csdn.net/ydj213/article/details/8190220 阅读全文
摘要:
URL请求一般分为同步和异步两种,请求是需要耗时的,所以肯定不能放在主线程中进行,这样会阻塞UI,这两种请求方式都可以在其他线程使用1、同步方式通过GCD来放到其他线程中执行dispatch_queue_t dispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);dispatch_async(dispatchQueue, ^(void) { NSURL *url = [NSURL URLWithString:urlAsString]; NSURLRequest *urlRequest = [.. 阅读全文
摘要:
有时候界面上的按钮显示的是英文,比如搜索中的取消按钮,相机内的保存取消按钮等等,那么如何变成中文呢?开始想的是从程序中获取该按钮,然后修改其title。后来发现不用这么笨,直接在Project中Info下的Localization中将本地化设置为Chinese即可。 阅读全文
摘要:
1、通过在textView中键盘上方添加一个toolBar来实现取消键盘的功能,可以添加其他功能:1 UIToolbar * topView = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 30)]; 2 [topView setBarStyle:UIBarStyleBlackTranslucent];3 4 UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSyste... 阅读全文
摘要:
让程序回到主线程的方法有:1、通过GCD返回主线程dispatch_async(dispatch_get_main_queue(), ^{ //code here }); 2、利用方法- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait 阅读全文
摘要:
1、UIManagedDocument-(void)saveToURL:(NSURL *)url forSaveOperation:(UIDocumentSaveOperation)saveOperation completionHandler:(void (^)(BOOL success))completionHandler-(void)openWithCompletionHandler:(void (^)(BOOL success))completionHandleropen和save方法都是异步的asynchronous,所以其需要一个completionBlock来执行open或sav 阅读全文