Enviar pesquisa
Carregar
ARCでめちゃモテiOSプログラマー
•
25 gostaram
•
6,469 visualizações
Satoshi Asano
Seguir
Tecnologia
Negócios
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 29
Baixar agora
Baixar para ler offline
Recomendados
Webエンジニアから見たiOS5
Webエンジニアから見たiOS5
Satoshi Asano
Taking Objective-C to the next level. UA Mobile 2016.
Taking Objective-C to the next level. UA Mobile 2016.
UA Mobile
Automatic Reference Counting @ Pragma Night
Automatic Reference Counting @ Pragma Night
Giuseppe Arici
Whats new in iOS5
Whats new in iOS5
Paul Ardeleanu
iOS Memory Management Basics
iOS Memory Management Basics
Bilue
iOS5 NewStuff
iOS5 NewStuff
deenna_vargilz
Cassandra 2.2 & 3.0
Cassandra 2.2 & 3.0
Victor Coustenoble
iOS 2 - The practical Stuff
iOS 2 - The practical Stuff
Petr Dvorak
Recomendados
Webエンジニアから見たiOS5
Webエンジニアから見たiOS5
Satoshi Asano
Taking Objective-C to the next level. UA Mobile 2016.
Taking Objective-C to the next level. UA Mobile 2016.
UA Mobile
Automatic Reference Counting @ Pragma Night
Automatic Reference Counting @ Pragma Night
Giuseppe Arici
Whats new in iOS5
Whats new in iOS5
Paul Ardeleanu
iOS Memory Management Basics
iOS Memory Management Basics
Bilue
iOS5 NewStuff
iOS5 NewStuff
deenna_vargilz
Cassandra 2.2 & 3.0
Cassandra 2.2 & 3.0
Victor Coustenoble
iOS 2 - The practical Stuff
iOS 2 - The practical Stuff
Petr Dvorak
ISUCONアプリを Pythonで書いてみた
ISUCONアプリを Pythonで書いてみた
memememomo
Modernizes your objective C - Oliviero
Modernizes your objective C - Oliviero
Codemotion
Scala active record
Scala active record
鉄平 土佐
Drush - use full power - DrupalCamp Donetsk 2014
Drush - use full power - DrupalCamp Donetsk 2014
Alex S
ES6: Features + Rails
ES6: Features + Rails
Santosh Wadghule
Nubilus Perl
Nubilus Perl
Flavio Poletti
Modernize your Objective-C
Modernize your Objective-C
Massimo Oliviero
Play á la Rails
Play á la Rails
Sebastian Nozzi
dotCloud and go
dotCloud and go
Flavio Poletti
Perl Web Client
Perl Web Client
Flavio Poletti
Go Web Development
Go Web Development
Cheng-Yi Yu
I os 04
I os 04
信嘉 陳
Learning jQuery in 30 minutes
Learning jQuery in 30 minutes
Simon Willison
Drush. Secrets come out.
Drush. Secrets come out.
Alex S
JS Level Up: Prototypes
JS Level Up: Prototypes
Vernon Kesner
MongoDB: tips, trick and hacks
MongoDB: tips, trick and hacks
Scott Hernandez
Hacking Mac OSX Cocoa API from Perl
Hacking Mac OSX Cocoa API from Perl
typester
XQuery Rocks
XQuery Rocks
William Candillon
ES6 is Nigh
ES6 is Nigh
Domenic Denicola
Automatic Reference Counting
Automatic Reference Counting
Giuseppe Arici
Air printで遊んでみた
Air printで遊んでみた
Hiroyuki Fujikawa
Sencha study
Sencha study
Shinsuke Sugita
Mais conteúdo relacionado
Mais procurados
ISUCONアプリを Pythonで書いてみた
ISUCONアプリを Pythonで書いてみた
memememomo
Modernizes your objective C - Oliviero
Modernizes your objective C - Oliviero
Codemotion
Scala active record
Scala active record
鉄平 土佐
Drush - use full power - DrupalCamp Donetsk 2014
Drush - use full power - DrupalCamp Donetsk 2014
Alex S
ES6: Features + Rails
ES6: Features + Rails
Santosh Wadghule
Nubilus Perl
Nubilus Perl
Flavio Poletti
Modernize your Objective-C
Modernize your Objective-C
Massimo Oliviero
Play á la Rails
Play á la Rails
Sebastian Nozzi
dotCloud and go
dotCloud and go
Flavio Poletti
Perl Web Client
Perl Web Client
Flavio Poletti
Go Web Development
Go Web Development
Cheng-Yi Yu
I os 04
I os 04
信嘉 陳
Learning jQuery in 30 minutes
Learning jQuery in 30 minutes
Simon Willison
Drush. Secrets come out.
Drush. Secrets come out.
Alex S
JS Level Up: Prototypes
JS Level Up: Prototypes
Vernon Kesner
MongoDB: tips, trick and hacks
MongoDB: tips, trick and hacks
Scott Hernandez
Hacking Mac OSX Cocoa API from Perl
Hacking Mac OSX Cocoa API from Perl
typester
XQuery Rocks
XQuery Rocks
William Candillon
ES6 is Nigh
ES6 is Nigh
Domenic Denicola
Automatic Reference Counting
Automatic Reference Counting
Giuseppe Arici
Mais procurados
(20)
ISUCONアプリを Pythonで書いてみた
ISUCONアプリを Pythonで書いてみた
Modernizes your objective C - Oliviero
Modernizes your objective C - Oliviero
Scala active record
Scala active record
Drush - use full power - DrupalCamp Donetsk 2014
Drush - use full power - DrupalCamp Donetsk 2014
ES6: Features + Rails
ES6: Features + Rails
Nubilus Perl
Nubilus Perl
Modernize your Objective-C
Modernize your Objective-C
Play á la Rails
Play á la Rails
dotCloud and go
dotCloud and go
Perl Web Client
Perl Web Client
Go Web Development
Go Web Development
I os 04
I os 04
Learning jQuery in 30 minutes
Learning jQuery in 30 minutes
Drush. Secrets come out.
Drush. Secrets come out.
JS Level Up: Prototypes
JS Level Up: Prototypes
MongoDB: tips, trick and hacks
MongoDB: tips, trick and hacks
Hacking Mac OSX Cocoa API from Perl
Hacking Mac OSX Cocoa API from Perl
XQuery Rocks
XQuery Rocks
ES6 is Nigh
ES6 is Nigh
Automatic Reference Counting
Automatic Reference Counting
Destaque
Air printで遊んでみた
Air printで遊んでみた
Hiroyuki Fujikawa
Sencha study
Sencha study
Shinsuke Sugita
Core Graphicsでつくる自作UIコンポーネント入門
Core Graphicsでつくる自作UIコンポーネント入門
cocopon
mq 使ってみたよ
mq 使ってみたよ
Tomohiro NAKAMURA
vImageのススメ
vImageのススメ
Shuichi Tsutsumi
Amazon ec2とは何か?
Amazon ec2とは何か?
Shinya_131
Herokuで作るdevise認証サイト
Herokuで作るdevise認証サイト
Fukui Osamu
120529 railsとか勉強会v2
120529 railsとか勉強会v2
Yoshiteru Toki
Memory management in Objective C
Memory management in Objective C
Neha Gupta
Android & IOS
Android & IOS
Arpee Callejo
iOS Memory Management
iOS Memory Management
Asim Rais Siddiqui
Memory management in Andoid
Memory management in Andoid
Monkop Inc
いまさら聞けないUnity小技
いまさら聞けないUnity小技
Yuichi Ishii
Apple iOS - A modern way to mobile operating system
Apple iOS - A modern way to mobile operating system
Dhruv Patel
Unity5.3の機能まとめ
Unity5.3の機能まとめ
Keigo Ando
Destaque
(15)
Air printで遊んでみた
Air printで遊んでみた
Sencha study
Sencha study
Core Graphicsでつくる自作UIコンポーネント入門
Core Graphicsでつくる自作UIコンポーネント入門
mq 使ってみたよ
mq 使ってみたよ
vImageのススメ
vImageのススメ
Amazon ec2とは何か?
Amazon ec2とは何か?
Herokuで作るdevise認証サイト
Herokuで作るdevise認証サイト
120529 railsとか勉強会v2
120529 railsとか勉強会v2
Memory management in Objective C
Memory management in Objective C
Android & IOS
Android & IOS
iOS Memory Management
iOS Memory Management
Memory management in Andoid
Memory management in Andoid
いまさら聞けないUnity小技
いまさら聞けないUnity小技
Apple iOS - A modern way to mobile operating system
Apple iOS - A modern way to mobile operating system
Unity5.3の機能まとめ
Unity5.3の機能まとめ
Semelhante a ARCでめちゃモテiOSプログラマー
Objective-C Survives
Objective-C Survives
S Akai
MFF UK - Introduction to iOS
MFF UK - Introduction to iOS
Petr Dvorak
FI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS Basics
Petr Dvorak
Developing iOS REST Applications
Developing iOS REST Applications
lmrei
Leaks & Zombies
Leaks & Zombies
Teemu Kurppa
iPhone dev intro
iPhone dev intro
Vonbo
Beginning to iPhone development
Beginning to iPhone development
Vonbo
Objective C Memory Management
Objective C Memory Management
Ahmed Magdy Ezzeldin, MSc.
I phoneアプリの通信エラー処理
I phoneアプリの通信エラー処理
Satoshi Asano
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Sarp Erdag
Agile Iphone Development
Agile Iphone Development
Giordano Scalzo
iPhone Memory Management
iPhone Memory Management
Vadim Zimin
Arc of developer part1
Arc of developer part1
Junpei Wada
Iphone course 1
Iphone course 1
Janet Huang
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
Taro Matsuzawa
Using Protocol to Refactor
Using Protocol to Refactor
Green Chiu
Introduction to Objective - C
Introduction to Objective - C
Jussi Pohjolainen
Freebase and the iPhone
Freebase and the iPhone
Alec Flett
Beginning icloud development - Cesare Rocchi - WhyMCA
Beginning icloud development - Cesare Rocchi - WhyMCA
Whymca
I phone勉強会 (2011.11.23)
I phone勉強会 (2011.11.23)
Katsumi Kishikawa
Semelhante a ARCでめちゃモテiOSプログラマー
(20)
Objective-C Survives
Objective-C Survives
MFF UK - Introduction to iOS
MFF UK - Introduction to iOS
FI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS Basics
Developing iOS REST Applications
Developing iOS REST Applications
Leaks & Zombies
Leaks & Zombies
iPhone dev intro
iPhone dev intro
Beginning to iPhone development
Beginning to iPhone development
Objective C Memory Management
Objective C Memory Management
I phoneアプリの通信エラー処理
I phoneアプリの通信エラー処理
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Agile Iphone Development
Agile Iphone Development
iPhone Memory Management
iPhone Memory Management
Arc of developer part1
Arc of developer part1
Iphone course 1
Iphone course 1
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
Using Protocol to Refactor
Using Protocol to Refactor
Introduction to Objective - C
Introduction to Objective - C
Freebase and the iPhone
Freebase and the iPhone
Beginning icloud development - Cesare Rocchi - WhyMCA
Beginning icloud development - Cesare Rocchi - WhyMCA
I phone勉強会 (2011.11.23)
I phone勉強会 (2011.11.23)
Mais de Satoshi Asano
GitHub活動を通して個人のキャリアを積みつつ仕事の成果を出す方法
GitHub活動を通して個人のキャリアを積みつつ仕事の成果を出す方法
Satoshi Asano
iPhoneアプリとAndroidアプリを比較する〜はてなブックマーク開発の現場から〜
iPhoneアプリとAndroidアプリを比較する〜はてなブックマーク開発の現場から〜
Satoshi Asano
Google Analytics & iPhone
Google Analytics & iPhone
Satoshi Asano
iPhoneアプリ開発講座Web連携アプリ編
iPhoneアプリ開発講座Web連携アプリ編
Satoshi Asano
Asihttp requestについて
Asihttp requestについて
Satoshi Asano
バックグラウンド位置取得について
バックグラウンド位置取得について
Satoshi Asano
iPhoneアプリ開発講座入門編
iPhoneアプリ開発講座入門編
Satoshi Asano
集合知プログラミング第2章復習
集合知プログラミング第2章復習
Satoshi Asano
Algorithm Introduction #18 B-Tree
Algorithm Introduction #18 B-Tree
Satoshi Asano
Mais de Satoshi Asano
(9)
GitHub活動を通して個人のキャリアを積みつつ仕事の成果を出す方法
GitHub活動を通して個人のキャリアを積みつつ仕事の成果を出す方法
iPhoneアプリとAndroidアプリを比較する〜はてなブックマーク開発の現場から〜
iPhoneアプリとAndroidアプリを比較する〜はてなブックマーク開発の現場から〜
Google Analytics & iPhone
Google Analytics & iPhone
iPhoneアプリ開発講座Web連携アプリ編
iPhoneアプリ開発講座Web連携アプリ編
Asihttp requestについて
Asihttp requestについて
バックグラウンド位置取得について
バックグラウンド位置取得について
iPhoneアプリ開発講座入門編
iPhoneアプリ開発講座入門編
集合知プログラミング第2章復習
集合知プログラミング第2章復習
Algorithm Introduction #18 B-Tree
Algorithm Introduction #18 B-Tree
Último
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Paola De la Torre
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Roshan Dwivedi
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Allon Mureinik
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Katpro Technologies
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
Último
(20)
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
ARCでめちゃモテiOSプログラマー
1.
ARC
iOS (id:ninjinkun / @ninjinkun)
2.
•
Cocoa Touch • ARC • ARC • • ARC • • Tips • GC
3.
Cocoa Touch •
retain / relase -(void)setName:(NSString *)newName { name = [newName retain]; } -(void)dealloc { [name release]; [super dealloc]; 1 3 0 } • Ownership • Ownership retain • Ownership release • 0
4.
Cocoa Touch Autorelase •
• autorelease • release • / •
5.
Cocoa Touch Autorelase •
• autorelease • release • / • -(void)buildNewName { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSMutableArray *array = [[[NSMutableArray alloc] init] autorelease]; [array addObject:@"hoge"]; [array addObject:@"fuga"]; [array addObject:@"piyo"]; name =[array componentsJoinedByString:@","]; [pool drain]; }
6.
ARC •
Automatic Reference Counting • • iOS 5 / Mac OS X 10.7
7.
ARC •
• • (GC) • Static Analyzer
8.
ARC •
@interface NonARCObject : NSObject { NSString *name; } -(id)initWithName:(NSString *)name; @end @implementation NonARCObject -(id)initWithName:(NSString *)newName { self = [super init]; if (self) { name = [newName retain]; } return self; } -(void)dealloc { [name release]; [super dealloc]; } @end
9.
ARC •
@interface ARCObject : NSObject { NSString *name; } -(id)initWithName:(NSString *)name; @end @implementation ARCObject -(id)initWithName:(NSString *)newName { self = [super init]; if (self) { name = newName; } return self; } @end
10.
ARC ARC •
• … • • • •
11.
ARC
__strong • • Ownership • • retain, release -(void)buildNewName { { __strong NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"hoge"]; [array addObject:@"fuga"]; [array addObject:@"piyo"]; name =[array componentsJoinedByString:@","]; } } !
12.
ARC
__strong • • retain, dealloc relase @interface ARCUser : NSObject { __strong NSString *name; } @end @implementation ARCUser -(id)initWithName:(NSString *)newName { self = [super init]; if (self) { name = newName; // [newName retain] } return self; } -(void)dealloc { // [name release] } @end
13.
ARC
__weak • __weak • • Ownership • nil • • iOS 5 @interface ARCUser : NSObject { __weak id delegate; } @end
14.
ARC
__unsafe_unretainded • • assign • • iOS 4.3 @interface ARCUser : NSObject { __unsafe_unretained id delegate; } @end
15.
ARC
__autoreleasing • autorelase • • @autorelasepool { } -(NSArray *)comvertImageToJpeg:(NSArray *)files { NSMutableArray *dataStore = [NSMutableArray array]; @autoreleasepool { for (NSString *filePath in files) { __autoreleasing UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath]; NSData *data = UIImageJPEGRepresentation(image, 1.0); [dataStore addObject:data]; } } return [dataStore copy]; }
16.
ARC •
retain, release, autorelase • retainCount • [super dealloc] • dealloc -(void)dealloc { delegate = nil; } • C __bridge NSString *str = @"hogehoge"; CFStringRef strRef = (__bridge CFStringRef)str; CFStringRef strRef = (__bridge_retained CFStringRef)str;
17.
•
ARC __strong • __strong __strong __strong __strong __strong __strong
18.
•
iOS 5 __weak • iOS 4.3 __unsafe_unretaind • nil __strong __weak __strong __strong __strong
19.
ARC •
20.
ARC retain / relase
• -S • • _objc_release() • _objc_retain() • _objc_retainAutoreleasedReturnValue()
21.
ARC __weak •
_objc_storeWeak() • 0 _objc_destroyWeak() • • nil • This document is licensed to ninjin@mac.com.
22.
Blocks •
ARC • self ? • • release • BlocksKit UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; [button addEventHandler:^(id sender) { [self showPhotoPickerView]; } forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button];
23.
Blocks •
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; __unsafe_unretained id _self = self; // !? [button addEventHandler:^(id sender) { [_self showPhotoPickerView]; } forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button];
24.
Blocks •
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; __unsafe_unretained id _self = self; // !? [button addEventHandler:^(id sender) { !? [_self showPhotoPickerView]; } forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button];
25.
Tips ARC •
-fno-objc-arc
26.
Tips ARC •
Static Library • Static Library • Workspace
27.
Tips •
ARC • iOS 5 __weak • Blocks • UI • UI Blocks
28.
GC •
GC • iOS • • • CPU
29.
•
ARC • ( ) • __weak • GC • • ( ) • ARC
Baixar agora