SlideShare a Scribd company logo
(仮)iOSカンケイ
自己紹介
• 名前 ワタナベ
• たまに (昔は) ギタリスト
• 早い車が好き (頭文字D至上主義)
•

@Susan_jacko
Obj-Cのメモリ管理
こんな人聞いてね
• Objective-C なにそれ?美味しいの?
• []←これで囲えば良いんでしょ?
• 私はMさんやIさんのような言語オタクで
はありません(´q`)

そんな君たちが対象です (ウソ)
エキスパートObjective-Cプログラミング
-iOS/OS Xのメモリ管理とマルチスレッド
参照カウント方式
照明に対する動作

オブジェクトに対する動作

照明を点灯する

オブジェクトを生成する

照明を必要とする

オブジェクトを所有する

照明を必要としなくなる

オブジェクトを解放する

照明を消灯する

オブジェクトを破棄する
オブジェクトに対する動作

Objective-Cメソッド

オブジェクトを生成する

alloc / new / copy /
mutableCopy

オブジェクトを所有する

retain

オブジェクトを解放する

release

オブジェクトを破棄する

dealloc
• 生成

0→1

alloc

• 所有

+1

retain

• 解放

-1

release

• 破棄

0

dealloc
オブジェクトを生成する
自分が生成したオブジェクトの所有者は自分
オブジェクトを生成する
{
// オブジェクトを生成する

+1 NSObject

*obj = [[NSObject alloc]init];

}
{

// オブジェクトを生成する
NSObject *obj1 = [NSObject alloc];
NSObject *obj2 = [obj1 init];
}
オブジェクトを所有する
自分が生成していないオブジェクトも
所有することができる
オブジェクトを所有する

{

±0 NSArray
+1 NSArray

}

*array1 = [NSArray array];
*array2 =[array1 retain];
オブジェクトを解放する
オブジェクトが必要なくなったら解放する
自分が所有してないオブジェクトを解放してはならない
オブジェクトを解放する
{
// オブジェクトを解放する

+1
-1

NSObject *obj = [[NSObject alloc]init];
[obj release];

}
{

// 自分が所有してないので、これはダメ

±0 NSArray *array =
-1 [array release];

[NSArray array];

}
{

NSArray *array = [NSArray array];
// 所有してればOK

+1 [array
-1 [array

}

retain];
release];
AutoReleasePool
{
int test = 0;
}
// スコープ抜けて破棄される

!
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc]init];

!

+1 NSObject* obj = [[NSObject
[obj
-1(予約) autorelease];
!
-1(確) [pool release];
}
// スコープみたいなもん

alloc]init];
AutoReleasePool
<メインループ>
NSAutoreleasePool

{

+1 ±0
}
-1(予約)

NSArray* array = [NSArray array];
ここまでのまとめ
• 欲しいんだったら所有しろ
• いらんくなったら解放
• 所有してないのに解放しない
• ±0にすべし
ここまでは昔の話
ARC
• Automatic Reference Counting
• Mac OS X Lion以降
• iOS4以降
• clang(LLVM コンパイラ) 3.0 以降
• つまり、Xcode 4以降
ARC
• 所有修飾子
• releaseとretainが使えない

NSObject __strong *obj = [[NSObject alloc]init];
ARC
参照カウントがナンボ
っていう考え方はあんま良く無いと思うよ?
while(true)
{
NSObject *obj = [[NSObject alloc]init];
[obj retain];
[obj retain];
[obj retain];
[obj retain];
[obj release];
[obj release];
[obj release];
[obj release];
[obj release];
}
• 生成
• 所有
• 解放
• 破棄
ARC
• __strong
• __weak
• __unsafe_unretained
• __autoreleasing
__strong 所有する
__strong
{

NSObject __strong *obj = [[NSObject alloc] init];
// かくかく
// しかじか
// ちょめちょめ

}
// スコープ抜けてobj解放

{
NSArray __strong *array = [NSArray array];
// かくかく
// しかじか
// ちょめちょめ
}
// スコープ抜けてarray解放
__strong

• オブジェクト型のポインタは自動で適用
NSObject *obj = [[NSObject alloc] init];
!

• 自動でnil初期化
NSObject *obj; =
__strong

最強伝説
循環参照
循環参照
class MyClass
id __strong *myObj;

{
MyClass __strong *objA = [[MyClass alloc]init];
MyClass __strong *objB = [[MyClass alloc]init];
objA.myObj = objB;
objB.myObj = objA;
}
// 変数objA消滅。でもobjB.myObjはobjAの強い山椒持ってる
// 変数objA消滅。でもobjA.myObjはobjBの強い山椒持ってる
循環参照
objA.myObj

objB

所有
objA

objB.myObj
循環参照
互いに参照し合ってる
objA

objB
__weak

所有しない

※画像に深い意味はありません。
__weak
class MyClass
//id __strong *myObj;

id __weak *myObj;

{
MyClass __strong *objA = [[MyClass alloc]init];
MyClass __strong *objB = [[MyClass alloc]init];
objA.myObj = objB;
objB.myObj = objA;
}
// 変数objA消滅。objB.myObjはobjAの弱い山椒なので解放
// 変数objA消滅。objA.myObjはobjBの弱い山椒なので解放
__weak
NSObject __weak *obj;
if(obj == nil)
{
// 自動でnil初期化
}
!

{
}

NSObject __strong *objA = [[NSObject alloc]init];
obj = objA;

!

if(obj == nil)
{
// 勝手にnil代入!
}
__weak
{
NSObject __weak *objA = [[NSObject alloc]init];
}

生成しっぱなし (所有しない)
__unsafe_unretained
NSObject __unsafe_unretained *obj;
if(obj == nil)
{
// 勝手にnil初期化
}
{
NSObject __strong *objA = [[NSObject alloc]init];
obj = objA;
}
if(obj == nil)
{
}
// 破棄されても参照し続ける...アブナイ!

nil が代入されないweak
__autoreleasing
ややこしいから、覚悟してね?
__autoreleasing
<メインループ>
NSAutoreleasePool

ARC 有効でも健在です。
__autoreleasing
autoreleaseの意味が違う

ARC なし
{
NSAutoreleasePool *pool =
[[NSAutoreleasePool alloc]init];

参照カウント -1の予約

NSObject *obj = [[NSObject
alloc]init];
[obj autorelease];
[pool release];
}

ARC あり
pool内での強い参照
@autoreleasepool
{
NSObject __autoreleasing *obj = [[NSObject alloc]init];
}
__autoreleasing
返せ
なく

MyClass* getObj()
ね?
{
id __strong obj = [[NSObject alloc]init];
return obj;
}

関数の戻り値は自動的に

autoreleasing
__autoreleasing
NSObject __strong *obj;
{
// スレッドA

スレ

NSObject __weak *objA = obj;
!

}
!
{

}

NSLog(@"%@", objA);

// スレッドB
obj = [[NSObject alloc]init];

ッド

Aの
オブ
ジェ
ヤバ
クト
くね
、
?
__autoreleasing
NSObject __strong *obj;
{
// スレッドA

!

}

!

@autoreleasepool
{
NSObject __weak *objA = obj;

}

NSObject __autoreleasing *tmp = objA;
NSLog(@"%@", objA);

__weakへのアクセスは、

{

こっそりと__autoreleasingへ代入されてる
// スレッドB

}

@autoreleasepool
{
obj = [[NSObject alloc]init];
}
LLVM 様々ですな
ARCまとめ①
__strong

所有する

__weak

所有しない(安全)

__unsafe_unretained

所有しない(危ない)

__autoreleasing

pool内で所有する
ARCまとめ②
• 基本__strongでOK (っていうかデフォ)
• 循環参照だけ気をつける
ARCが安パイ
大人の時間
Poolってどうなってんの?
{

NSAutoreleasePool* pool = [[NSAutoreleasePool alloc]init];
NSObject* obj = [[NSObject alloc]init];
[obj autorelease];

}

[pool release];
Poolってどうなってんの?
{

NSAutoreleasePool* pool = [[NSAutoreleasePool alloc]init];
NSObject* obj = [[NSObject alloc]init];
[pool addObject:obj]; // [obj autorelease];

}

for(id obj in pool.list) // [pool release];
{
[obj release];
}

autorelease は多様しない方が高速
ARC有効時の戻り値
MyClass* getObj()
{
id __strong obj = [[NSObject alloc]init];
return obj;
}

まさか、 毎回AutoreleasePoolに…?
MyClass *obj = getObj();

MyClass* getObj()

AutoreleasePool

MyClass *obj
__weak のアクセス
NSObject __strong *obj;
!
!

{
NSObject __weak *objA = obj;
NSLog(@"%@", objA);
NSLog(@"%@", objA);
NSLog(@"%@", objA);
}

まさか、毎回AutoreleasePoolに…?
__weak のアクセス
そう、そのまさかです。
NSObject __strong *obj;
!
!
{
NSObject __weak *objA = obj;
NSObject __autoreleasing *tmp = objA;
NSLog(@"%@", objA);
NSObject __autoreleasing *tmp = objA;
NSLog(@"%@", objA);
NSObject __autoreleasing *tmp = objA;
NSLog(@"%@", objA);
}
__weak のアクセス
weak付き変数アドレス
参照カウント = 1

weak付き変数アドレス

アドレスのハッシュ値

アドレスのハッシュ値
参照カウント = 4

アドレスのハッシュ値

アドレスのハッシュ値

アドレスのハッシュ値

アドレスのハッシュ値
weak付き変数アドレス
__weak のアクセス

{

}

NSObject
NSObject
NSObject
NSObject

__strong *s_obj = [[NSObject alloc]init];
__weak *w_objA = s_obj;
__weak *w_objB = s_obj;
__weak *w_objC = s_obj;
__weak のアクセス
参照カウント = 1

s_obj

アドレスのハッシュ値

w_objB
s_obj

アドレスのハッシュ値
アドレスのハッシュ値

w_objA

アドレスのハッシュ値
__weak のアクセス
参照カウント = 0

s_obj

アドレスのハッシュ値

w_objB
s_obj

アドレスのハッシュ値
アドレスのハッシュ値

w_objA

アドレスのハッシュ値
__weak のアクセス

s_obj

検索

アドレスのハッシュ値

アドレスのハッシュ値

s_obj

アドレスのハッシュ値

アドレスのハッシュ値
__weak のアクセス

s_obj

アドレスのハッシュ値

w_objB
s_obj

アドレスのハッシュ値
アドレスのハッシュ値

w_objA

アドレスのハッシュ値
__weak のアクセス

s_obj

アドレスのハッシュ値

nil
s_obj

アドレスのハッシュ値
アドレスのハッシュ値

nil

アドレスのハッシュ値
__weak のアクセス

s_obj

アドレスのハッシュ値

アドレスのハッシュ値

s_obj

アドレスのハッシュ値

アドレスのハッシュ値
__weak のアクセス

s_obj

アドレスのハッシュ値

アドレスのハッシュ値

s_obj

アドレスのハッシュ値

アドレスのハッシュ値
そこまで気にする事ない
おわり

More Related Content

Recently uploaded

FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 

Recently uploaded (15)

FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Objective-Cのメモリ管理