ios开发
文章平均质量分 90
Mamong
这个作者很懒,什么都没留下…
展开
-
理解SwiftUI中的matchedGeometryEffect
理解SwiftUI中matchedGeometryEffect的作用原创 2023-12-19 20:27:27 · 659 阅读 · 0 评论 -
2022年ios开发问题记录记录
记录今年iOS开发中自己遇到或替别人解决的问题。原创 2022-09-25 21:29:31 · 4412 阅读 · 0 评论 -
Block基础
文章目录Block结构如何截获自动变量Block的存储域Block复制使用__block发生了什么参考Block是函数及其执行上下文封装起来的对象。Block结构使用Block的时候,编译器对Block语法进行了怎样的转换?int main() { int count = 10; void (^ blk)() = ^(){ NSLog(@"In Block:%d", count); }; blk();}如上所示的最简单的Block使用代码,经cl原创 2022-05-10 09:14:18 · 253 阅读 · 0 评论 -
Autorelease Pool备览
文章目录AutoreleasePool是什么主线程AutoreleasePool创建和释放子线程AutoreleasePool创建和释放AutoreleasePool实现原理AutoreleasePoolPage实现AutoreleasePoolPage介绍objc_autoreleasePoolPushAutoreleasePoolPage::autorelease(id obj)Autorelease返回值的优化机制objc_autoreleasePoolPop总结推荐阅读AutoreleasePoo原创 2022-05-09 23:25:29 · 538 阅读 · 0 评论 -
Runloop备览
文章目录1. Runloop是什么2. Runloop作用3. RunLoop和线程间的关系4. 详解RunLoop相关类及作用4.1 CFRunLoopRef4.1.1 RunLoop的种类4.1.3 CFRunLoopRef的操作4.2 CFRunLoopModeRef4.2.1 mode种类4.2.2 CFRunLoopModeRef的结构4.2.3 RunLoop mode的操作4.3 CFRunLoopSourceRef事件源4.3.1 CFRunLoopSource的种类4.3.2 CFRunL原创 2022-05-09 23:12:35 · 357 阅读 · 0 评论 -
SwiftUI中@State和@StateObject如何确保View重建前后数据一致
我们知道在SwiftUI中,如果修改了@State属性包装器修饰的值类型变量,会引起View自身的重新渲染,也就是调用body方法。此时该View的struct是不会重新创建的,但是body方法里的各种子View会被重新创建。举个例子:import SwiftUIclass StateObjectClass:ObservableObject{ let type:String let id:Int @Published var count = 0 init(type原创 2021-03-26 17:34:04 · 788 阅读 · 0 评论 -
记一次在Tweak中引入Swift framework的过程
最近想在一个插件里打通App和web端,实现通过web控制App,方案是选用socket.io作为服务端和web前端。iOS端socket.io是一个纯swift实现的库。目前Theos对swift的支持还不是很完善,但是完成一般的工作了。Theos现在是支持swift文件编译的。首先我们要来看一下theos仓库中对swift支持的一些介绍。其中Swift Runtime这部分比较关键的,需要按...原创 2020-04-01 18:25:52 · 1059 阅读 · 5 评论 -
Apple现行公开的framework简介
文章目录App Framework(11)AppKitBundle ResourcesFoundationSwiftSwiftUITVMLTVMLKitTVMLKit JSTVUIKitUIKitWatchKitGraphics and Games(24)AGLARKitColorSyncCore AnimationCore GraphicsCore ImageGame ControllerGam...原创 2020-01-08 22:47:44 · 1827 阅读 · 0 评论 -
frame.origin.x 的意思和作用?
frame.origin.x 的意思和作用? scrollView.frame一个view的frame 包含它的矩形形状(size)的长和宽。和它在父视图中的坐标原点(origin)x和y坐标 frame 框架origin就是所謂的起點位置frame在ios里并不是一个具体的对象,他只是一些控件的一个属性。frame的值就是一个CGRect 包括(originX,ori转载 2012-11-23 17:56:47 · 14882 阅读 · 0 评论 -
[译]苹果 Cocoa 编码规范中文版
[Cocoa][译]苹果 Cocoa 编码规范中文版罗朝辉(http://www.cppblog.com/kesalin/)CC许可,转载请注明出处官方文档:Coding Guidelines for Cocoa本文档下载:点击这里> Code Naming Basics 代码命名基础在面向对象软件库的设计过程中,开发人员经常忽视对类,方法,函数,常转载 2013-01-01 20:28:11 · 1878 阅读 · 0 评论 -
【Foundation.framework】NSURLConnection
如何使用NSURLConnection是IOS SDK偏于上层的网络API,NSURLConnection对象通过加载URL请求来实现网络连接。NSURLConnection的接口非常少,只提供了控制启动和取消异步加载的相关方法。NSURLConnection的委托NSURLConnection准许对象接受一个URL请求的异步回调,并在一个网络请求的生命周期的关键点上都提供了相关的回调转载 2013-01-04 15:38:58 · 908 阅读 · 0 评论 -
异步加载网络数据,自定义进度条显示
转载自http://gekie.iteye.com/blog/1135627 //调用方式 Ajax *ajax = [[Ajax alloc]Ajax:urlStr target:self didFinish:@selector(showData:)转载 2013-01-04 15:45:01 · 1352 阅读 · 0 评论 -
Cocoa编程中视图控制器与视图类详解
iPhone编程规则是:一个窗口,多个视图。UIView是iPhone屏幕上很多控件的基础类。每个iPhone用户界面都是由显示在UIWindow(这其实也是个特殊的UIView)内的众多UIView及其专门化子类构建的。显示数据的视图:UITextViewUILabelUIImageViewUIWebViewMKMapViewsUIScrollView可选择的视图(以下两个视图类转载 2013-01-03 21:45:08 · 1882 阅读 · 0 评论 -
NSURLConnection下载文件并显示进度
1、创建一个NSURLConnection对象: NSURL *url = [NSURL URLWithString: @"http://119.147.106.249/gdown_group11/M00/3F/15/d5Nq-UxBq88AAAAAAUn8QBO4rlY4306605/01_01_Android%E5%B9%B3%E5%8F%B0%E4%B8%80%E6%97转载 2013-01-04 15:40:11 · 3088 阅读 · 1 评论 -
IBOutlet的初始化过程
今天写了个两个视图相互传值的程序,发现了一个小问题。解决办法和楼下引用的文献是一样的,我是解决之后去谷歌的,但是发现这个问题别人也遇到过,而且也找到了变通的法子。The nib file you specify is not loaded right away. It is loaded the first time the view controller’s view is accessed原创 2013-01-05 21:32:14 · 3451 阅读 · 0 评论 -
block的简单使用
今天用到了下面个方法:presentViewController:animated:completion:Presents a view controller.- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (原创 2013-01-06 15:37:45 · 1837 阅读 · 0 评论 -
IOS学习笔记10—UIControl对象详解
我们很多人没有搞清楚addTarget:action:forControlEvents:实现的机制,下面这篇文章比较详细地阐述了这些内容。target是收到控件发出的事件并且进行处理的对象,action:是具体处理的行为,我们说行为不能脱离实施者的存在,因此target+action的组合刚好组成一个事件处理所需的完整要素。转载自http://blog.csdn.net/tangr转载 2013-01-06 20:52:51 · 855 阅读 · 0 评论 -
隐藏Tabbar的一些方法
由于手机界面比较小,有时候由于业务的需要,需要隐藏那个导航用的tabbar,方法有下面几个方法 方法一 YourAppDelegate *app = (YourAppDelegate *)[UIApplication sharedApplication].delegate; NSArray *views = [app.tabBarController.view su转载 2013-01-22 11:51:55 · 980 阅读 · 0 评论 -
The truth about synchronous NSURLConnection
In this post, I'll talk about NSURLConnection, the advantages and disadvantages about synchronous versus asynchronous connections. At the end I'll show a snippet of code on how to use an asynchronous转载 2013-01-23 14:26:16 · 1299 阅读 · 1 评论 -
core animation 入门教程(已添加第三章)
转自http://www.cocoachina.com/bbs/read.php?tid=10972&uid=2406由于本人水平有限,有错误的地方请指教。谢谢。 by译者 long4success @CocoaChina第一章 Core animation简介1. 简介Core animation 是以objc语言封装的一套图形渲染,投影及转载 2013-01-23 21:21:42 · 899 阅读 · 0 评论 -
小议contentsRect
参考文献:http://blog.csdn.net/mengtnt/article/details/7100564contentsRect 想像下contentsRect作为层内容的可视区域。内容的矩形区域(x,y,width,height)也是绑定到层的框架上的。contentRect是一个比例值,而不是屏幕上真实的像素点。默认的是0.0,0.0,1.0,1.0.当你改原创 2013-01-23 17:35:50 · 5554 阅读 · 0 评论 -
iPhone/iOS Core Animation开发总结(CALayer)
转自http://blog.csdn.net/jerryvon/article/details/7527247一.重要参数bounds,frame,position属于基本的几何定位,相互之间数值变化会相互影响anchorPoint:单位参数(0-1)表示,变形(transform)时候的变换源点zPosition:相当于css中z-index的概念,Apple建议不要转载 2013-01-23 21:23:17 · 909 阅读 · 0 评论 -
有用的小代码
常用代码整理:12.判断邮箱格式是否正确的代码://利用正则表达式验证-(BOOL)isValidateEmail:(NSString *)email{NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";NSPredicate *emailT转载 2013-01-23 13:01:26 · 606 阅读 · 0 评论 -
CALayer 的一些重要属性
下面就逐个过下 CALayer 的一些重要属性: 1. shadowPath : 设置 CALayer 背景(shodow)的位置 2. shadowOffset : shadow 在 X 和 Y 轴 上延伸的方向,即 shadow 的大小 3. shadowOpacity : shadow 的透明效果 4. shadowRadius : shadow 的渐变距离,转载 2013-01-23 23:59:13 · 1606 阅读 · 0 评论 -
nsbundle
-- 思考: NSBundle ---bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle.我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及转载 2013-01-09 22:23:21 · 793 阅读 · 0 评论 -
关于Application windows are expected to have a root view controller at the end of application launch
Application windows are expected to have a root view controller at the end of application launch这个问题在新版xcode和iOS6中出现,一些iOS5的经典著作的例子可能会有这种警告,解决的办法是添加一句 [self.window setRootViewController: rootControlle原创 2013-01-09 23:51:47 · 11588 阅读 · 0 评论 -
关于[datePicker date]不正确显示当地时间的问题
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm +0800"];NSString *destDateString = [dateFormatter stringFromDate:selected];格式化时间…原创 2013-01-09 22:26:21 · 2594 阅读 · 0 评论 -
缩略图by keefo
自己扩展的方法 - (NSImage *)resizeTo:(NSSize)newsize { NSRect rect=NSMakeRect(0, 0, newsize.width, newsize.height); NSImage *resizedImage = [[NSImage alloc] initWithSize:rect.size]; [re转载 2013-01-10 10:51:55 · 696 阅读 · 0 评论 -
关于模态弹窗点击灰色区域消失
标题是不是写的很有诗意?我自己也觉得有点儿迷糊,其实就是这样需求:模态弹出来的窗口,需要点击窗口以外的区域,也就是模态区域让这个窗口消失。一般这种场景会出现在iPad里,当你modalPresentationStyle为UIModalPresentationFormSheet时,会有这种需求。网上找了一下,这种东东还真能实现,于是想着UIAlertView是不是也可以实现呢?你猜咋地,竟然真的可以转载 2013-01-24 17:52:46 · 2136 阅读 · 0 评论 -
GCD介绍(一): 基本概念和Dispatch Queue
转自http://www.dreamingwish.com/dream-2012/of-of-of-of-gcd-introduced-1-basic-concepts-in-and-the-dispatch-queue.html什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像转载 2013-01-25 12:53:41 · 1154 阅读 · 0 评论 -
属性,点语法,实例变量
这三者,初学者往往会犯糊涂。怎么来区分呢? 属性往往和synthesize配合来产生设置器和获取器,一般建议的话,对于类的实例变量的访问通过获取和设置器。现在有了自动synthesize这个特性后就不需要在.m文件里synthesize。现在还支持只有属性,而不声明实例变量。其实属性已经隐含地生成了一个_开头的实例变量,这样我们就可以在.m文件中直接用。但是如果你既声明实例变量,又声明原创 2013-01-10 16:38:07 · 890 阅读 · 0 评论 -
sizeWithFont:方法使用明细
个人总结:Computing Metrics for a Single Line of Text– sizeWithFont: 同下面,换行方式默认取NSLineBreakByWordWrapping– sizeWithFont:forWidth:lineBreakMode: 将字符串放入指定宽度,如果不够,就依据换行方式截断字符串,返回其大小。– sizeWithFont:m原创 2013-01-25 15:41:49 · 15559 阅读 · 1 评论 -
GCD介绍(二): 多核心的性能
转自http://www.dreamingwish.com/dream-2012/of-of-of-performance-of-of-of-of-of-of-of-gcd-introduced-ba-the-multi-core.html概念为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局disp转载 2013-01-25 13:05:17 · 837 阅读 · 0 评论 -
GCD介绍(四): 完结
转自http://www.dreamingwish.com/dream-2012/gcd-four-the-the-odds-and-ends.htmlDispatch Queue挂起dispatch queue可以被挂起和恢复。使用 dispatch_suspend函数来挂起,使用 dispatch_resume 函数来恢复。这两个函数的行为是如你所愿的。另外,这两转载 2013-01-25 13:08:03 · 995 阅读 · 0 评论 -
GCD介绍(三): Dispatch Sources
转自:http://www.dreamingwish.com/dream-2012/gcd%E4%BB%8B%E7%BB%8D%EF%BC%88%E4%B8%89%EF%BC%89-dispatch-sources.html何为Dispatch Sources简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放转载 2013-01-25 13:06:54 · 937 阅读 · 0 评论 -
IOS学习笔记21—沙盒机制(SandBox)
IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。1.每个应用程序都在自己的沙盒内2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容3.应用程序向外请求或接收数据都需要经过权限认证查看模拟器的沙盒文件夹在Mac电脑上的转载 2013-01-11 15:55:33 · 715 阅读 · 0 评论 -
iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
基本使用: 创建一个user defaults方法有多个,最简单得快速创建方法: NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults]; 添加数据到 user defaults: [accountDefaults setObject:nameField.text forKey:转载 2013-01-11 15:52:40 · 13278 阅读 · 1 评论 -
UIScrollView 原理详解
转自http://blog.csdn.net/ch_soft/article/details/6947695ScrollView UIScrollView UIScrollView为了显示多于一个屏幕的内容或者超过你能放在内存中的内容。 Scroll View为你处理缩小放大手势,UIS转载 2013-01-26 20:00:47 · 1256 阅读 · 0 评论 -
UIApplication sharedApplication详细解释-IOS
iPhone应用程序是由主函数main启动,它负责调用UIApplicationMain函数,该函数的形式如下所示: int UIApplicationMain ( int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName ); 那么UIApplicationMai转载 2013-01-11 15:54:35 · 963 阅读 · 0 评论 -
NSDictionary不简单
字典里某个键key的值可能是空数组~~~那这个[dic objectForkey:key]是什么?你猜会是[NSNull null]?也可能不是~~~但至少是个空数组。[[dic objectForkey:key] count]会告诉我们结果。下面的代码使用了NSNull来判断字典某个键的值是否为空。但是这种判断方法,似乎对于空集合类不大奏效。 id obje原创 2013-01-28 00:19:52 · 4532 阅读 · 0 评论