首页 > TAG信息列表 > NSLog

OC笔记 - isMemberOfClass | isKindOfClass

isMemberOfClass | isKindOfClass 1 - 猜想以下代码输出的结果 1 #import <Foundation/Foundation.h> 2 #import <objc/runtime.h> 3 @interface Person : NSObject 4 5 @end 6 @implementation Person 7 8 @end 9 10 int main(int argc, const char * argv[])

iOS原生Xcode工程接入 TapTapSDK

本次目标是 接入TapTapSDK 几个模块 1 账号登陆 - TDS 内建账户服务 2 事件上报 3 防沉迷 - 快速认证   环境介绍 Xcode 13.2 + 上一篇笔记中的creator3.5.1 导出游戏工程 TapSDK_iOS_v3.11.0   1 集成必要的静态库 根据TapSDK说明 需要如下静态库   还有其他文档中需要的系

iOS笔记 - Autorelease调用时机(对象出了方法就立即销毁?)

Autorelease调用时机 1 - 我们先看代码 ① 示例一:MRC模式 // - Person.m 1 #import "Person.h" 2 3 @implementation Person 4 5 -(void)dealloc{ 6 7 NSLog(@"person dealloc"); 8 [super dealloc]; 9 } 10 11 @end // - ViewController.m

OC语言 - NSPredicate

NSPredicate 1 - NSPredicate 主要用来指定过滤器的条件:该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配 2 - 谓词是指在计算机中表示计算真假值的函数,原理和用法都类似于 SQL 查询中的 where,作用相当于数据库的过滤取。主要用于从集合中分拣出符合

OC中NSString 的常用方法,2021Android高级面试题及答案

//判断字符串是否以指定字符串开头 [str1 hasPrefix:@“aaa”]; //判断字符串是否以指定字符串结尾 [str1 hasSuffix:@“aaa”]; //判断字符串是否包含指定字符串,返回位置和长度 NSRange range = [@“123456” rangeOfString:@“456”]; NSLog(@"%@", NSStringFromRange(rang

Objective-C 基础教程第二章,对C的扩展

目录Object-C 基础教程第二章,对C的扩展前言创建Objective-C 版Hello World解析 Objective-C HelloWorld程序import 语句框架NSLog()和@"字符串"NS前缀NSString:@是本体Objective-C HelloWorld工程总结布尔类型本章小结 Object-C 基础教程第二章,对C的扩展 前言 ​ 虽然Objective-

iOS底层系列之<27>--Runloop<三>Runloop监听observer的方式

1、监听的方式一(C语言函数) - (void)test10 { // 创建observer CFRunLoopObserverRef observer = CFRunLoopObserverCreate(kCFAllocatorDefault, kCFRunLoopBeforeWaiting | kCFRunLoopAfterWaiting, YES, 0, observeRunLoopActivities, NULL); // 添加observer

IOS 关于锁

前言 为什么需要锁: 多条线程存在同时操作(删、查、读、写)同一个文件or对象or变量。如果不是同时或者不是同一个那就不用加锁了。关键变量:必须是“同时”,“同一事物” 自旋锁OSSpinLock 个人理解:就是一直等,忙等,一直while 到锁被解开,自旋锁不会让等待的线程进入休眠状态已经废弃

快速上手ReactiveCocoa之基础篇

前言 很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感觉真正缺少的是一篇如何学习ReactiveCocoa的文章,小编看了很多篇都没看出怎么使用ReactiveCocoa,于是决定自己写一遍关于学习ReactiveCocoa的文章,本文主要针对如何从零开始学习ReactiveCoco

OC中对象的复制:二

看官们,我们在前面章回中介绍了OC中对象的复制,本章回中将继续介绍这方面的知识。 在上一章回中我们介绍了什么是复制以及如何进行复制。本章回中将介绍复制背后的原理和复制操作的原则。 复制的原理 我们通过复制操作的两个方法(copy和mutableCopy)进行复制操作时本质上是在调用

RGB转YUV

YUV常见格式是以下四种,其他的格式自行搜索,以下是转换方法 I420: YYYYYYYY UU VV =>YUV420P YV12: YYYYYYYY VV UU =>YUV420P NV12: YYYYYYYY UVUV =>YUV420SP NV21: YYYYYYYY VUVU =>YUV420SP 以下转换方法是RGBA的像素格式,如果是ARGB,RGB,BGR等,自行去转换, 或者调整方法

【iOS开发】—— 调用相机、相册

在大部分app中,都是会使用到调用相机和相册的,所以学习app开发就必须要学习一下调用相机和相册。 首先要先了解一下UIImagePickerController。 一、UIImagePickerController UIImagePickerController是iOS系统提供的和系统的相册和相机交互的一个类,可以用来获取相册的照片,也

iOS工具 - NSLog日志打印出中文

NSLog 日志打印出中文 1 - NSLog日志可以正常打印出中文,而不被编译成其它字符,对字典进行扩展即可 2 - 代码示例 // - NSDictionary+Log.m 1 #import "NSDictionary+Log.h" 2 @implementation NSDictionary (Log) 3 - (NSString *)descriptionWithLocale:(id)locale { 4

[iOS开发]知乎日报第三周总结

实现的: 1.收藏界面: 2.滑动取消收藏 3.评论界面 遇到的问题: Masonry写在layoutSubViews里失效。好像是需要手动调用。数据库FMDB的使用,代码: - (void)creatTable { NSArray *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YE

Foundation框架中的NSFileManager二

  看官们,我们在前面章回中介绍了Foundation框架中的NSFileManager,本章回中将继续介绍它。 我们在上一章回中主要介绍了目录相关的操作,本章回中主要介绍文件相关的操作。 创建文件 - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data

iOS-带参数的图片上传(第二期)

iOS-带参数的图片上传(第二期) 一 AFNetwork-带参数的图片上传的两种方式     1.通过params上传(最普遍的方式)     前端代码:       AFHTTPSessionManager *Imagesession = [[AFHTTPSessionManager alloc]init];      NSDictionary *Imagejson =@{XXX};        [Imagese

iOS-带参数的图片上传(适用于不太懂后端的小白~)

iOS-带参数的图片上传 一、现有的两种上传方式     1. AFNetwork上传     2.NSURLMutableRequest上传    (ps:这两种方式,很多博客上已经有了就不需要我在这里再次说明了) 二、我在上传图片时遇到的问题      上面提到的两种方式我都用过了,但是后台一直返回400的信息,也没有接

iOS开发 解决NSLog打印不全以及打印中文乱码的问题

#ifdef DEBUG #define NSLog(FORMAT, ...) fprintf(stderr, "[%s %s %s %s-第%d行] %s\n", __DATE__ , __TIME__, __func__, [[[NSString stringWithUTF8String: __FILE__] lastPathComponent] UTF8String], __LINE__, [[[NSString alloc] initWithData:[[NSString s

iOS 函数式(链式)编程

https://www.cnblogs.com/chzheng/p/5949376.html   函数式编程概念 函数式编程是种编程范式 函数式编程 Functional Programming,简写 FP 使用特点,将局部小的逻辑计算封装为一个个小的函数体,在实际应用中将这些小的函数体 自由组合 可以接受函数当作输入(参数)和输出(返回值) 函

Swift 打印 log 所在的文件和行数

在 OC 中,我们经常用到下面这种打印,使用 NSlog打印 log 所在的文件和行数。 #ifdef DEBUG #define NSLog(format, ...) printf("\n[%s] %s [第%d行] %s\n", __TIME__, __FUNCTION__, __LINE__, [[NSString stringWithFormat:format, ## __VA_ARGS__] UTF8String]); #else #de

相册视频转码MP4格式 iOS

本地已转码时,直接上传;本地无转码时,先转码再上传 /// 视频处理通过本地沙盒文件路径判断此视频文件是否已经转码 /// @param asset 视频资源 /// @param callBack 回调 - (void)dealWithVidioAsset:(PHAsset *)asset callBack:(void (^)(NSString *))callBack {

iOS NSNumber 的属性 stringValue 造成的偏差

0x00 上代码 NSNumber *obj = @(99999.99); NSLog(@"%@",obj.stringValue); // 99999.99000000001 obj = @(99999.98); NSLog(@"%@",obj.stringValue); // 99999.98 obj = @(99999.999); NSLog(@"%@",obj.strin

ios开发中如何使用sqlite数据库

ios开发中如何使用sqlite数据库 首先,使用sqlite存储数据,需要添加libsqlite3.dylib 这个动态库,然后 添加动态库的主头文件 #import <sqlite3.h> // db就是数据库的象征,如果要进行CRUD(增删改查),得操作db这个实例 @property (nonatomic, assign) sqlite3 *db;   第一步: 打开数据库

iOS-底层原理 27:GCD 之 NSThread & GCD & NSOperation

本文的主要目的是介绍 NSThread、GCD、NSOperation常见的使用方式 NSthread NSthread是苹果官方提供面向对象的线程操作技术,是对thread的上层封装,比较偏向于底层。简单方便,可以直接操作线程对象,使用频率较少。 创建线程 线程的创建方式主要以下三种方式 通过init初始化方式创建

Block与局部变量的关系

Block语法 返回值(^Block名字)(参数)=^(参数){   return 返回值 }   void (^TesTblock) (id)=^(id obj){ NSLog(@"========>id:%@",obj); }; TesTblock(@"xx"); //block声明 int(^Sum)(int,int)=^(int a,int b){ return