SlideShare a Scribd company logo
1 of 36
Download to read offline
iOSUIDebugging
by David Olesch
December 2016 - Austin iPhone Developer Group Meetup
WhatisDebugging?
December 2016 - Austin iPhone Developer Group Meetup
iOSUIDebugging?
December 2016 - Austin iPhone Developer Group Meetup
Debugbylogging
In Objective-C
object.someVariable = @"Hello World";
NSLog(object.someVariable); // Logs "Hello World"
In Swi!
object.someVariable = "Hello World"
print(object.someVariable) // Logs "Hello World"
December 2016 - Austin iPhone Developer Group Meetup
lldbtherealiOSappdebugger
(lldb) po object
<NSObject: 0x7fe572d8df70; someVariable = "Hello World">
(lldb) po [object someVariable]
Hello World
(lldb) p [object someVariable]
(NSString *) $0 = 0x000d9080 @"Hello World"
December 2016 - Austin iPhone Developer Group Meetup
FacebookChisel
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
December 2016 - Austin iPhone Developer Group Meetup
R.I.P.pviews
2014-2016
December 2016 - Austin iPhone Developer Group Meetup
LongLivepvc
(lldb)pvc
.
December 2016 - Austin iPhone Developer Group Meetup
LongLivepvc
(lldb)pvc
<UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420>
| <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0>
| | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380>
December 2016 - Austin iPhone Developer Group Meetup
LongLivepvc
(lldb)pvc
<UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420>
| <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0>
| | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380>
(lldb)po (int)[[0x7fe572f74b50 items] count]
December 2016 - Austin iPhone Developer Group Meetup
LongLivepvc
(lldb)pvc
<UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420>
| <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0>
| | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380>
(lldb)po (int)[[0x7fe572f74b50 items] count]
13
December 2016 - Austin iPhone Developer Group Meetup
LongLivevisualize
December 2016 - Austin iPhone Developer Group Meetup
LongLiveshow/hide
December 2016 - Austin iPhone Developer Group Meetup
LongLivecaflush
(lldb)pvc
.
December 2016 - Austin iPhone Developer Group Meetup
LongLivecaflush
(lldb)pvc
<UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420>
| <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0>
| | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380>
December 2016 - Austin iPhone Developer Group Meetup
LongLivecaflush
(lldb)pvc
<UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420>
| <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0>
| | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380>
(lldb) e id $vc = [UIViewController new]
(lldb) e (void)[$vc setTitle:@"Debug View Controller"]
(lldb) e (void)[0x7fe57400fa00 pushViewContoller:$vc animated:YES]
December 2016 - Austin iPhone Developer Group Meetup
LongLivecaflush
(lldb)pvc
<UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420>
| <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0>
| | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380>
(lldb) e id $vc = [UIViewController new]
(lldb) e (void)[$vc setTitle:@"Debug View Controller"]
(lldb) e (void)[0x7fe57400fa00 pushViewContoller:$vc animated:YES]
(lldb) caflush
December 2016 - Austin iPhone Developer Group Meetup
LongLivewivar
December 2016 - Austin iPhone Developer Group Meetup
LongLivepresponder
(lldb) presponder button
.
December 2016 - Austin iPhone Developer Group Meetup
LongLivepresponder
(lldb) presponder button
<UIButton: 0x7ff91275b4c0; frame = (12 144; 170 44); opaque = NO; autoresize = RM+BM; tag = 3; layer = <CALayer: 0x7ff912427680>>
| <UIView: 0x7ff9124f5650; frame = (0 0; 200 200); gestureRecognizers = <NSArray: 0x7ff914846c20>; layer = <CALayer: 0x7ff914935e40>>
| | <UICollectionViewCell: 0x7ff914932660; frame = (60 0; 200 200); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x7ff914935030>>
| | | <UICollectionView: 0x7ff912897400; frame = (0 189.333; 320 200); clipsToBounds = YES; opaque = NO; autoresize = W+H>
| | | | <DOLevelCategoryCell: 0x7ff9124ecf00; baseClass = UICollectionViewCell; frame = (0 44; 320 568)>
| | | | | <UICollectionView: 0x7ff912871000; frame = (0 0; 320 568); clipsToBounds = YES; opaque = NO>
| | | | | | <UICollectionViewControllerWrapperView: 0x7ff912726610; frame = (0 0; 320 568); autoresize = W+H>
| | | | | | | <DOLevelCategoriesViewController: 0x7ff9125a0fe0>
| | | | | | | | <UIView: 0x7ff91259a380; frame = (0 0; 320 568); opaque = NO; autoresize = RM+BM>
| | | | | | | | | <UIView: 0x7ff9125a9050; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7ff9125aee60>>
| | | | | | | | | | <DOTriviaContainerViewController: 0x7ff912428fb0>
| | | | | | | | | | | <UIViewControllerWrapperView: 0x7ff914841cb0; frame = (0 0; 320 568); autoresize = W+H>
| | | | | | | | | | | | <UINavigationTransitionView: 0x7ff912752be0; frame = (0 0; 320 568); clipsToBounds = YES>
| | | | | | | | | | | | | <UILayoutContainerView: 0x7ff91248f590; frame = (0 0; 320 568); autoresize = W+H>
| | | | | | | | | | | | | | <UINavigationController: 0x7ff912841c00>
| | | | | | | | | | | | | | | <UIWindow: 0x7ff9124596e0; frame = (0 0; 320 568)>
| | | | | | | | | | | | | | | | <UIApplication: 0x7ff912504a70>
| | | | | | | | | | | | | | | | | <DOAppDelegate: 0x7ff912506a40>
December 2016 - Austin iPhone Developer Group Meetup
+ (int)adjustableParameter {
return 5;
}
December 2016 - Austin iPhone Developer Group Meetup
LongLivethreadreturn
December 2016 - Austin iPhone Developer Group Meetup
iOSUIDebugging
by David Olesch
December 2016 - Austin iPhone Developer Group Meetup

More Related Content

Viewers also liked

Parse London Meetup - Cloud Code Tips & Tricks
Parse London Meetup - Cloud Code Tips & TricksParse London Meetup - Cloud Code Tips & Tricks
Parse London Meetup - Cloud Code Tips & TricksHector Ramos
 
Generic Parse Server
Generic Parse ServerGeneric Parse Server
Generic Parse Serverdavidolesch
 
Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code維佋 唐
 
proyecto informatica aplicada
proyecto informatica aplicadaproyecto informatica aplicada
proyecto informatica aplicadaheipy_5
 
Important questions of psac unit wise
Important questions of psac unit wiseImportant questions of psac unit wise
Important questions of psac unit wiseRitu Rajan
 
Reconocimiento por radio frecuencia oficial
Reconocimiento por radio frecuencia oficial Reconocimiento por radio frecuencia oficial
Reconocimiento por radio frecuencia oficial Yonatan Córdova
 

Viewers also liked (8)

Parse London Meetup - Cloud Code Tips & Tricks
Parse London Meetup - Cloud Code Tips & TricksParse London Meetup - Cloud Code Tips & Tricks
Parse London Meetup - Cloud Code Tips & Tricks
 
Generic Parse Server
Generic Parse ServerGeneric Parse Server
Generic Parse Server
 
Parse Server Open Source
Parse Server Open SourceParse Server Open Source
Parse Server Open Source
 
Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code
 
Participacion y discapacidad
Participacion y discapacidadParticipacion y discapacidad
Participacion y discapacidad
 
proyecto informatica aplicada
proyecto informatica aplicadaproyecto informatica aplicada
proyecto informatica aplicada
 
Important questions of psac unit wise
Important questions of psac unit wiseImportant questions of psac unit wise
Important questions of psac unit wise
 
Reconocimiento por radio frecuencia oficial
Reconocimiento por radio frecuencia oficial Reconocimiento por radio frecuencia oficial
Reconocimiento por radio frecuencia oficial
 

Similar to iOS UI Debugging

Opening iOS App 開發者交流會
Opening iOS App 開發者交流會Opening iOS App 開發者交流會
Opening iOS App 開發者交流會Michael Pan
 
Android development with Scala and SBT
Android development with Scala and SBTAndroid development with Scala and SBT
Android development with Scala and SBTAnton Yalyshev
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentMOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentanistar sung
 
Programming with JavaFX
Programming with JavaFXProgramming with JavaFX
Programming with JavaFXFulvio Corno
 
Migrating Objective-C to Swift
Migrating Objective-C to SwiftMigrating Objective-C to Swift
Migrating Objective-C to SwiftElmar Kretzer
 
(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotion(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotionStefan Haflidason
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)Oswald Campesato
 
Stop the internet, i want to go offline
Stop the internet, i want to go offlineStop the internet, i want to go offline
Stop the internet, i want to go offlineBoyan Mihaylov
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in AndroidRobert Cooper
 
UIWebViewでつくるUI
UIWebViewでつくるUIUIWebViewでつくるUI
UIWebViewでつくるUIcocopon
 
Android Architecture Components with Kotlin
Android Architecture Components with KotlinAndroid Architecture Components with Kotlin
Android Architecture Components with KotlinAdit Lal
 
stackconf 2022: Are all programming languages in english?
stackconf 2022: Are all programming languages in english?stackconf 2022: Are all programming languages in english?
stackconf 2022: Are all programming languages in english?NETWAYS
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS DevelopmentJussi Pohjolainen
 
OpenJFX on Android and Devices
OpenJFX on Android and DevicesOpenJFX on Android and Devices
OpenJFX on Android and DevicesStephen Chin
 
Telerik Kendo UI Overview
Telerik Kendo UI OverviewTelerik Kendo UI Overview
Telerik Kendo UI OverviewEd Musters
 

Similar to iOS UI Debugging (20)

Opening iOS App 開發者交流會
Opening iOS App 開發者交流會Opening iOS App 開發者交流會
Opening iOS App 開發者交流會
 
Android development with Scala and SBT
Android development with Scala and SBTAndroid development with Scala and SBT
Android development with Scala and SBT
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentMOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app development
 
Programming with JavaFX
Programming with JavaFXProgramming with JavaFX
Programming with JavaFX
 
Migrating Objective-C to Swift
Migrating Objective-C to SwiftMigrating Objective-C to Swift
Migrating Objective-C to Swift
 
Reusable ui components
Reusable ui componentsReusable ui components
Reusable ui components
 
(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotion(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotion
 
Svcc 2013-d3
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
 
Stop the internet, i want to go offline
Stop the internet, i want to go offlineStop the internet, i want to go offline
Stop the internet, i want to go offline
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in Android
 
UIWebViewでつくるUI
UIWebViewでつくるUIUIWebViewでつくるUI
UIWebViewでつくるUI
 
Mobile Web Design Code
Mobile Web Design CodeMobile Web Design Code
Mobile Web Design Code
 
Android Architecture Components with Kotlin
Android Architecture Components with KotlinAndroid Architecture Components with Kotlin
Android Architecture Components with Kotlin
 
shiny.pdf
shiny.pdfshiny.pdf
shiny.pdf
 
stackconf 2022: Are all programming languages in english?
stackconf 2022: Are all programming languages in english?stackconf 2022: Are all programming languages in english?
stackconf 2022: Are all programming languages in english?
 
shiny_v1.pptx
shiny_v1.pptxshiny_v1.pptx
shiny_v1.pptx
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS Development
 
OpenJFX on Android and Devices
OpenJFX on Android and DevicesOpenJFX on Android and Devices
OpenJFX on Android and Devices
 
Telerik Kendo UI Overview
Telerik Kendo UI OverviewTelerik Kendo UI Overview
Telerik Kendo UI Overview
 

More from davidolesch

Using Affordance for Clearer Source Code
Using Affordance for Clearer Source CodeUsing Affordance for Clearer Source Code
Using Affordance for Clearer Source Codedavidolesch
 
Standard parse server
Standard parse serverStandard parse server
Standard parse serverdavidolesch
 
Migrating Wine Quiz to Parse Server
Migrating Wine Quiz to Parse ServerMigrating Wine Quiz to Parse Server
Migrating Wine Quiz to Parse Serverdavidolesch
 
Building Apps for Apple TV
Building Apps for Apple TVBuilding Apps for Apple TV
Building Apps for Apple TVdavidolesch
 
Building a map pin detail animation
Building a map pin detail animationBuilding a map pin detail animation
Building a map pin detail animationdavidolesch
 
Get More App Downloads by hacking Craigslist and paying Facebook
Get More App Downloads by hacking Craigslist and paying FacebookGet More App Downloads by hacking Craigslist and paying Facebook
Get More App Downloads by hacking Craigslist and paying Facebookdavidolesch
 
iOS UI debugging
iOS UI debuggingiOS UI debugging
iOS UI debuggingdavidolesch
 
Developing Watch Apps for  Watch
Developing Watch Apps for  WatchDeveloping Watch Apps for  Watch
Developing Watch Apps for  Watchdavidolesch
 

More from davidolesch (8)

Using Affordance for Clearer Source Code
Using Affordance for Clearer Source CodeUsing Affordance for Clearer Source Code
Using Affordance for Clearer Source Code
 
Standard parse server
Standard parse serverStandard parse server
Standard parse server
 
Migrating Wine Quiz to Parse Server
Migrating Wine Quiz to Parse ServerMigrating Wine Quiz to Parse Server
Migrating Wine Quiz to Parse Server
 
Building Apps for Apple TV
Building Apps for Apple TVBuilding Apps for Apple TV
Building Apps for Apple TV
 
Building a map pin detail animation
Building a map pin detail animationBuilding a map pin detail animation
Building a map pin detail animation
 
Get More App Downloads by hacking Craigslist and paying Facebook
Get More App Downloads by hacking Craigslist and paying FacebookGet More App Downloads by hacking Craigslist and paying Facebook
Get More App Downloads by hacking Craigslist and paying Facebook
 
iOS UI debugging
iOS UI debuggingiOS UI debugging
iOS UI debugging
 
Developing Watch Apps for  Watch
Developing Watch Apps for  WatchDeveloping Watch Apps for  Watch
Developing Watch Apps for  Watch
 

Recently uploaded

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 

Recently uploaded (20)

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 

iOS UI Debugging

  • 1. iOSUIDebugging by David Olesch December 2016 - Austin iPhone Developer Group Meetup
  • 2. WhatisDebugging? December 2016 - Austin iPhone Developer Group Meetup
  • 3. iOSUIDebugging? December 2016 - Austin iPhone Developer Group Meetup
  • 4. Debugbylogging In Objective-C object.someVariable = @"Hello World"; NSLog(object.someVariable); // Logs "Hello World" In Swi! object.someVariable = "Hello World" print(object.someVariable) // Logs "Hello World" December 2016 - Austin iPhone Developer Group Meetup
  • 5. lldbtherealiOSappdebugger (lldb) po object <NSObject: 0x7fe572d8df70; someVariable = "Hello World"> (lldb) po [object someVariable] Hello World (lldb) p [object someVariable] (NSString *) $0 = 0x000d9080 @"Hello World" December 2016 - Austin iPhone Developer Group Meetup
  • 6. FacebookChisel December 2016 - Austin iPhone Developer Group Meetup
  • 7. December 2016 - Austin iPhone Developer Group Meetup
  • 8. December 2016 - Austin iPhone Developer Group Meetup
  • 9. December 2016 - Austin iPhone Developer Group Meetup
  • 10. December 2016 - Austin iPhone Developer Group Meetup
  • 11. December 2016 - Austin iPhone Developer Group Meetup
  • 12. December 2016 - Austin iPhone Developer Group Meetup
  • 13. December 2016 - Austin iPhone Developer Group Meetup
  • 14. December 2016 - Austin iPhone Developer Group Meetup
  • 15. December 2016 - Austin iPhone Developer Group Meetup
  • 16. December 2016 - Austin iPhone Developer Group Meetup
  • 17. December 2016 - Austin iPhone Developer Group Meetup
  • 18. December 2016 - Austin iPhone Developer Group Meetup
  • 19. December 2016 - Austin iPhone Developer Group Meetup
  • 20. R.I.P.pviews 2014-2016 December 2016 - Austin iPhone Developer Group Meetup
  • 21. LongLivepvc (lldb)pvc . December 2016 - Austin iPhone Developer Group Meetup
  • 22. LongLivepvc (lldb)pvc <UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420> | <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0> | | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380> December 2016 - Austin iPhone Developer Group Meetup
  • 23. LongLivepvc (lldb)pvc <UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420> | <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0> | | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380> (lldb)po (int)[[0x7fe572f74b50 items] count] December 2016 - Austin iPhone Developer Group Meetup
  • 24. LongLivepvc (lldb)pvc <UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420> | <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0> | | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380> (lldb)po (int)[[0x7fe572f74b50 items] count] 13 December 2016 - Austin iPhone Developer Group Meetup
  • 25. LongLivevisualize December 2016 - Austin iPhone Developer Group Meetup
  • 26. LongLiveshow/hide December 2016 - Austin iPhone Developer Group Meetup
  • 27. LongLivecaflush (lldb)pvc . December 2016 - Austin iPhone Developer Group Meetup
  • 28. LongLivecaflush (lldb)pvc <UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420> | <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0> | | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380> December 2016 - Austin iPhone Developer Group Meetup
  • 29. LongLivecaflush (lldb)pvc <UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420> | <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0> | | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380> (lldb) e id $vc = [UIViewController new] (lldb) e (void)[$vc setTitle:@"Debug View Controller"] (lldb) e (void)[0x7fe57400fa00 pushViewContoller:$vc animated:YES] December 2016 - Austin iPhone Developer Group Meetup
  • 30. LongLivecaflush (lldb)pvc <UINavigationController 0x7fe57400fa00>, state: appeared, view: <UILayoutContainerView 0x7fe575013420> | <DOTriviaContainerViewController 0x7fe572f21c60>, state: appeared, view: <UIView 0x7fe572cd3ed0> | | <DOLevelCategoriesViewController 0x7fe572f74b50>, state: appeared, view: <UICollectionViewControllerWrapperView 0x7fe572f48380> (lldb) e id $vc = [UIViewController new] (lldb) e (void)[$vc setTitle:@"Debug View Controller"] (lldb) e (void)[0x7fe57400fa00 pushViewContoller:$vc animated:YES] (lldb) caflush December 2016 - Austin iPhone Developer Group Meetup
  • 31. LongLivewivar December 2016 - Austin iPhone Developer Group Meetup
  • 32. LongLivepresponder (lldb) presponder button . December 2016 - Austin iPhone Developer Group Meetup
  • 33. LongLivepresponder (lldb) presponder button <UIButton: 0x7ff91275b4c0; frame = (12 144; 170 44); opaque = NO; autoresize = RM+BM; tag = 3; layer = <CALayer: 0x7ff912427680>> | <UIView: 0x7ff9124f5650; frame = (0 0; 200 200); gestureRecognizers = <NSArray: 0x7ff914846c20>; layer = <CALayer: 0x7ff914935e40>> | | <UICollectionViewCell: 0x7ff914932660; frame = (60 0; 200 200); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x7ff914935030>> | | | <UICollectionView: 0x7ff912897400; frame = (0 189.333; 320 200); clipsToBounds = YES; opaque = NO; autoresize = W+H> | | | | <DOLevelCategoryCell: 0x7ff9124ecf00; baseClass = UICollectionViewCell; frame = (0 44; 320 568)> | | | | | <UICollectionView: 0x7ff912871000; frame = (0 0; 320 568); clipsToBounds = YES; opaque = NO> | | | | | | <UICollectionViewControllerWrapperView: 0x7ff912726610; frame = (0 0; 320 568); autoresize = W+H> | | | | | | | <DOLevelCategoriesViewController: 0x7ff9125a0fe0> | | | | | | | | <UIView: 0x7ff91259a380; frame = (0 0; 320 568); opaque = NO; autoresize = RM+BM> | | | | | | | | | <UIView: 0x7ff9125a9050; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7ff9125aee60>> | | | | | | | | | | <DOTriviaContainerViewController: 0x7ff912428fb0> | | | | | | | | | | | <UIViewControllerWrapperView: 0x7ff914841cb0; frame = (0 0; 320 568); autoresize = W+H> | | | | | | | | | | | | <UINavigationTransitionView: 0x7ff912752be0; frame = (0 0; 320 568); clipsToBounds = YES> | | | | | | | | | | | | | <UILayoutContainerView: 0x7ff91248f590; frame = (0 0; 320 568); autoresize = W+H> | | | | | | | | | | | | | | <UINavigationController: 0x7ff912841c00> | | | | | | | | | | | | | | | <UIWindow: 0x7ff9124596e0; frame = (0 0; 320 568)> | | | | | | | | | | | | | | | | <UIApplication: 0x7ff912504a70> | | | | | | | | | | | | | | | | | <DOAppDelegate: 0x7ff912506a40> December 2016 - Austin iPhone Developer Group Meetup
  • 34. + (int)adjustableParameter { return 5; } December 2016 - Austin iPhone Developer Group Meetup
  • 35. LongLivethreadreturn December 2016 - Austin iPhone Developer Group Meetup
  • 36. iOSUIDebugging by David Olesch December 2016 - Austin iPhone Developer Group Meetup