0%

属性

@property

  • 尽管可以使用 obj->arr 的形式去强制读取对象的成员变量,但是良好的编程形式是对外界提供成员变量的读写接口。**@property** 关键字提供了外界对成员变量的访问接口,其本质是自动为某一个属性生成 set 和 get 方法

  • 根据不同的需要,可以添加 readonly(只读,相当于只添加 get 不添加 set 方法)或者 readwrite(读写,如果不添加则为默认);

  • 还有三种赋值方式可选 :assign(直接赋值,通常用于基本类型),retain(释放旧值,增加新的 retaincount),copy(常用于字符串,生成一个新的拷贝).

  • property 的属性特性只对 setter 方法有效,对 getter 方法无效

    格式

@property (原子性©,内存管理©,读写性©) NSString *string;
阅读全文 »

  • GitHub 源码:AFNetworking
  • star:30000+

README 文档


AFNetworking 是一个适用于 iOS 系统和 Mac OS X 系统的网络框架。它建立在 Foundation URL Loading System 之上,扩展了 Cocoa 强大的高级网络抽象。设计精良的模块化架构、功能丰富的 API,让你能够安心的使用,轻松实现各种网络请求,比如 GET 请求,POST 请求,以及上传多张图片等。

阅读全文 »

附上 3 个网络可达性库:

  1. Apple 官方 Demo:Reachability
  2. 本项目:tonymillion/Reachability
  3. AFNetworkingAFNetworkReachabilityManager

WARNING there have been reports of apps being rejected when Reachability is used in a framework. The only solution to this so far is to rename the class.

⚠️该类库可能使用了与 Apple 源码相同的类名,因此提交应用审核时,可能会被拒绝。目前为止,唯一的解决方法就是更改类名。

阅读全文 »

Tomcat 8 权威指南
RUNNING.txt

UNIX 指令路径

UNIX 指令 注释
/ 根路径
./ 当前路径
../ 上一级路径
阅读全文 »

声明:本文参考自高性能 iOS 应用开发 - 高拉夫・瓦依希 第 6 章。

image

创建复合视图的三种方式:

  1. 故事版(Storyboard)或者 NIB 文件;
  2. 手写代码,创建并添加 UI 控件;
  3. 手写代码,直接绘制视图;
阅读全文 »

NSPredicate 谓词

cocoa 中提供了 NSPredicate 类,指定过滤器的条件。将符合条件的对象保留下来。

正则表达式

// 待匹配字符串
NSString *string = @"201709----201710";

// --------------------------------
// 1⃣️ NSPredicate
// 正则表达式
NSString *regex = @"^\\d{6}\\D+\\d{6}$";
// 创建 NSPredicate 实例对象
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
// 是否匹配
BOOL isMatch = [predicate evaluateWithObject:string];
NSLog(@"%@",isMatch ? @"匹配" : @"不匹配");

// --------------------------------
// 2⃣️ NSString
// 返回匹配到的第一个字符串范围
NSRange range = [string rangeOfString:@"\\d+" options:NSRegularExpressionSearch];
if (range.location != NSNotFound) {
    NSLog(@"%@",[string substringWithRange:range]); // 201709
}

// --------------------------------
// 3⃣️ NSRegularExpression
// 创建 NSRegularExpression 实例对象
NSRegularExpression *regularExpression =
    [NSRegularExpression regularExpressionWithPattern:regex
                                              options:NSRegularExpressionCaseInsensitive
                                                error:nil];
// 1.查找第一个匹配结果,如果查找不到则返回 nil
NSTextCheckingResult *firstMatch =
    [regularExpression firstMatchInString:string
                                  options:NSMatchingReportCompletion
                                    range:NSMakeRange(0, string.length)];
if (firstMatch) {
    // 如果匹配到结果,就打印
    NSLog(@"%@",[string substringWithRange:firstMatch.range]);
}

// 2.查找字符串中所有的匹配结果
NSArray *matches = [regularExpression matchesInString:string
                                              options:NSMatchingReportProgress
                                                range:NSMakeRange(0, string.length)];
if (matches.count > 0) {
    [matches enumerateObjectsUsingBlock:^(NSTextCheckingResult *obj, NSUInteger idx, BOOL * _Nonnull stop) {
        NSLog(@"第 %lu 个结果 = %@",idx, [string substringWithRange:obj.range]);
    }];
}
阅读全文 »

https://developer.apple.com/documentation/pdfkit?language=objc

PDFKit

在应用程序中显示和操作 PDF 文档。

Topics

Views

属性 注释
PDFView PDFView 对象将 PDF Kit 的功能封装到单个小部件中,您可以使用 Interface Builder 将其添加到应用程序中。
PDFThumbnailView PDFThumbnailView 对象包含一组缩略图,每个缩略图代表 PDF 文档中的页面。
阅读全文 »