iOS

A collection of 18 posts

iOS

制作 App Store 预览视频

在 App Store 为 iOS 应用提供预览视频,可以让用户直观地了解应用的相关功能、提高浏览的转化率。下边介绍如何制作预览视频。 录制视频 视频需要至少提供5.5和6.5英寸两种尺寸,我们可以使用模拟器录制视频,节约成本。 在终端运行如下命令,开始录制视频: xcrun simctl io booted recordVideo app-preview.mp4 视频长度必须在15到30秒之间,同时为了方便用户观看,你可能需要调节操作的速度。 添加背景声 苹果要求视频必须带背景声,可以用下边的命令添加沉默的背景声。 ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -i ./app_preview.

iOS

Dynamic collectionView in UITableViewCell

Recently I'm building a page like this: There's a dynamic collectionView in every UITableViewCell, for the self-sizing UITableViewCells to work, override systemLayoutSizeFitting: class TableViewCell: UITableViewCell { @IBOutlet weak var collectionView: UICollectionView! override func systemLayoutSizeFitting(_ targetSize: CGSize, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority, verticalFittingPriority: UILayoutPriority) -> CGSize { collectionView.

iOS

使用FIR安装测试版失败

使用FIR发布测试版后,安装失败,查看安装过程中的相关Log为 entitlement 'get-task-allow' has value not permitted by provisioning profile -[MICodeSigningVerifier performValidationWithError:]: 186: Failed to verify code signature of (Entitlements found that are not permitted by provisioning profile) 检查后发现安装失败的原因为:项目的Build Settings中的Provisioning Profile无效(比如你在Apple的后台更新该Profile之后,本地旧的Provisioning Profile会显示为一串数字,需要重新选择正确的)

iOS

iOS网页离线开发笔记

离线HTML 1.使用Ono解析HTML,将其中的图片、JS保存到本地 2.使用以下方法加载本地的HTML,通过baseURL指定相关资源的路径 - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL 自定义NSURLProtocol 可以通过继承NSURLProtocol来自定义网络请求 [NSURLProtocol registerClass:[CustomURLProtocol class]]; 比如,使WebView中的某类链接显示默认的本地图片 @interface CustomURLProtocol () <NSURLConnectionDelegate> @end @implementation CustomURLProtocol + (BOOL)canInitWithRequest:(NSURLRequest *)request { if (IS_REQUEST_YOU_WANT) { return YES; } return

Reading Notes

读《objc-zen-book》

条件表达式 条件表达式的主体应该总是包含在大括号中: //推荐 if (!error) { return success; } //不推荐 if (!error) return success; 提前将列外情况排除,而不是将重要的代码置于条件表达式的主体,这样的代码更易读 //推荐 - (void)someMethod { if (![someOther boolValue]) { return; } } //不推荐 - (void)someMethod { if ([someOther boolValue]) { //Do something important } } 将过于复杂的条件判断提取为变量,例如: BOOL nameContainsSwift = [sessionName containsString:@"Swift"]; BOOL isCurrentYear

Reading Notes

读《Objective-C基础教程》

Objective-C基础 Cocoa对其所有函数,常量和类型名称都添加来NS前缀。该前缀表明函数来自Cocoa而不是其他工具包。 @符号是Objective-C在标准C语言基础上添加的特性之一。双引号中打字符串前有一个@符号,这表示引用的字符串应该作为Cocoa的NSString元素来处理。 Objective-C中的BOOL实际上是一种对带符号的字符类型(signed char)的定义(typedef),它使用8位存储空间。YES定义为1,NO定义为0(使用#define)。 Objective-C中所有对象间的交互都是通过指针实现的。 导入头文件的两种不同的方法: #import <Cocoa/Cocoa.h>,用于导入系统头文件。 #import “Tire.h”,导入项目本地的头文件。 比较字符串时,应该使用isEqualToString;==只判断字符串的指针数值。 如果在声明方法时添加来加号,那么该方法就是类方法。 Objective-C运行时生成一个类的时候,会创建一个代表该类的类对象。类对象包含了指向超类的指针,类名和指向类方法列表的指针。类对象还包含一个long型的数据,为新创建的类实例对象指定大小(以字节为单位)。 NSArray只能存储Objective-C的对象,

iOS

AFNetworking parse JSON Unescaped control character

1.Add chandan's method removeUnescapedCharacter to class AFURLResponseSerialization in AFNetworking 2.0. 2.Add responseString = [self removeUnescapedCharacter:responseString]; under NSString *responseString = [[NSString alloc] initWithData:data encoding:stringEncoding]; in method - (id)responseObjectForResponse:(NSURLResponse *)response data:(NSData *)data error:(NSError *__autoreleasing *)error