title
Objective C Tutorial
description
Get the Code Here : http://goo.gl/aNeg5E
Best Objective C Book : http://amzn.to/1GjLx6N
Support me on Patreon : https://www.patreon.com/derekbanas
C Intro 1:40
For Loop 2:37
Main Attributes 3:18
Compiling 4:52
Include 6:06
Data Types 6:17
Scanf / User Input 7:22
Data Type Precision 9:05
If Else Statement 12:07
Comparison Operators 13:02
Logical Operators 13:19
Math 16:29
For Loop 20:08
While Loop 21:58
Do While Loop 22:33
Global Variable 24:06
Functions 24:43
Pointers 28:32
Structs 32:40
Objective C Intro 34:37
Auto Release Pool 35:39
NSLog 36:18
NSString 36:30
Constants 41:02
Convert NSString to String 41:39
NSRange 42:25
NSMutableString 45:06
NSArray 47:37
NSMutableArray 50:23
Custom Objects / Classes 52:36
Header File 53:02
Properties 53:30
Method Definition 54:49
Implementation File 57:49
Constructor / Init 58:02
Self 58:45
Custom Init 59:30
Method Initialization 1:00:09
Creating Objects 1:01:28
Executing Object Methods 1:01:58
Inheritance 1:04:44
Catagories 1:07:56
Protocols 1:11:21
Block Anonymous Function 1:13:06
Enum 1:14:08
Dynamic Binding 1:14:49
In this video I'll teach most of the objective C programming language in one video. I'll also teach a great deal of the C programming language as well.
I'll cover compiling, include, variables, data types, functions, pointers, structs, main, printf, formatting, scanf, comparison operators, logical operators, if, else, ternary operator, math, casting, order of operations, looping, ARC, NSLog, classes, objects, NSLog, NSString, NSRange, NSArray, NSMutableString, NSMutableArray, init, alloc, inheritance, categories, protocols, blocks, enums, dynamic binding and more.
detail
{'title': 'Objective C Tutorial', 'heatmap': [{'end': 2208.058, 'start': 2103.905, 'weight': 0.837}, {'end': 3235.275, 'start': 3131.514, 'weight': 0.798}, {'end': 3371.92, 'start': 3271.937, 'weight': 0.839}, {'end': 3511.617, 'start': 3459.116, 'weight': 0.853}, {'end': 4125.189, 'start': 4072.769, 'weight': 1}, {'end': 4266.578, 'start': 4163.344, 'weight': 0.727}, {'end': 4403.779, 'start': 4304.434, 'weight': 0.78}], 'summary': 'This tutorial covers objective-c basics, c programming variables, data types, limitations, precision, programming concepts, fundamentals, string manipulation, nsstring, nsmutablestring, objective-c arrays, custom object and method creation, and object-oriented programming in objective-c. it includes examples and explanations for each topic.', 'chapters': [{'end': 361.343, 'segs': [{'end': 58.08, 'src': 'embed', 'start': 0.089, 'weight': 0, 'content': [{'end': 3.091, 'text': 'Well hello internet and welcome to my Objective-C tutorial.', 'start': 0.089, 'duration': 3.002}, {'end': 9.975, 'text': "In this one tutorial, I'm going to teach pretty much everything you'd like to know about Objective-C and also, as a side effect,", 'start': 3.131, 'duration': 6.844}, {'end': 14.237, 'text': "I'm also going to teach a lot about how to program in C, because they are quite similar.", 'start': 9.975, 'duration': 4.262}, {'end': 21.781, 'text': "I'm going to be programming using Xcode, but for the Windows users out there, I'll also show you exactly what programs you need to run this code,", 'start': 14.357, 'duration': 7.424}, {'end': 26.144, 'text': 'because it will run on a Macintosh Linux or on a Windows machine.', 'start': 21.781, 'duration': 4.363}, {'end': 28.105, 'text': "So I have a lot to do so let's get into it.", 'start': 26.224, 'duration': 1.881}, {'end': 35.806, 'text': 'Okay, so for those people that are on Windows, this is what I suggest if you want to be able to compile Objective-C programs.', 'start': 29.121, 'duration': 6.685}, {'end': 44.733, 'text': 'You would either use ming.w.org and download mingw, or go to sigwin.com and download this,', 'start': 35.926, 'duration': 8.807}, {'end': 49.417, 'text': "and you'll be able to compile all of the Objective-C programs that I have here in this tutorial.", 'start': 44.733, 'duration': 4.684}, {'end': 51.258, 'text': "Now let's jump over and start writing some code.", 'start': 49.557, 'duration': 1.701}, {'end': 58.08, 'text': "Now, like I said, I'm going to be using Xcode here, but I'm also going to be using the terminal or command line to show you how to execute those,", 'start': 51.438, 'duration': 6.642}], 'summary': 'Objective-c tutorial covering programming in c for windows and xcode usage.', 'duration': 57.991, 'max_score': 0.089, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g89.jpg'}, {'end': 136.617, 'src': 'embed', 'start': 110.593, 'weight': 3, 'content': [{'end': 116.919, 'text': "And if you're wondering what these attributes are right here, whenever you would run your application from the command line or the terminal,", 'start': 110.593, 'duration': 6.326}, {'end': 124.166, 'text': 'you would be able to pass in the number of words being passed into this function, as well as a list of those words inside of an array.', 'start': 116.919, 'duration': 7.247}, {'end': 125.908, 'text': "And I'll demonstrate that here in a second.", 'start': 124.206, 'duration': 1.702}, {'end': 129.372, 'text': "But first, let's focus in on exactly what printf is.", 'start': 126.088, 'duration': 3.284}, {'end': 130.733, 'text': "You've probably seen this before.", 'start': 129.412, 'duration': 1.321}, {'end': 136.617, 'text': "Basically all printf is going to do is it's going to print whatever words you have inside of these double quotes,", 'start': 130.973, 'duration': 5.644}], 'summary': 'Demonstrating passing number of words and list of words into a function', 'duration': 26.024, 'max_score': 110.593, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g110593.jpg'}, {'end': 221.235, 'src': 'embed', 'start': 184.948, 'weight': 4, 'content': [{'end': 187.59, 'text': 'as long as this condition right here remains true.', 'start': 184.948, 'duration': 2.642}, {'end': 196.937, 'text': "so I'm going to say I want to continue looping or increasing the value of i as long as i has a value that is less than argc.", 'start': 187.59, 'duration': 9.347}, {'end': 204.442, 'text': 'this guy right here, whenever we pass an array, which is just a bunch of boxes that contain values, into the main function,', 'start': 196.937, 'duration': 7.505}, {'end': 208.525, 'text': 'what this is going to do is to allow us to iterate through all those different things.', 'start': 204.442, 'duration': 4.083}, {'end': 221.235, 'text': 'so if you sent in a sentence that was something like I am happy I am and happy would all go into different boxes inside of an array and they would have a label or index of 0 for I,', 'start': 208.525, 'duration': 12.71}], 'summary': 'Loop through array elements in c as long as i < argc.', 'duration': 36.287, 'max_score': 184.948, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g184948.jpg'}], 'start': 0.089, 'title': 'Objective-c basics', 'summary': 'Provides a comprehensive tutorial on objective-c, including its similarities with c, compatibility with different platforms, necessary programs for windows users, and usage of xcode and command line for code execution. it also covers the main.c file execution, printf function for printing words, for loops, and command line execution, with examples and explanations.', 'chapters': [{'end': 93.004, 'start': 0.089, 'title': 'Objective-c tutorial', 'summary': 'Provides a comprehensive tutorial on objective-c, including its similarities with c, compatibility with different platforms, necessary programs for windows users, and usage of xcode and command line for code execution.', 'duration': 92.915, 'highlights': ['The tutorial covers everything about Objective-C and also teaches a lot about programming in C, as they are quite similar.', 'The tutorial demonstrates the compatibility of Objective-C with different platforms, including Macintosh Linux and Windows.', 'For Windows users, the tutorial suggests using mingw.org or sigwin.com to compile Objective-C programs.', 'The tutorial emphasizes the usage of Xcode and command line for writing and executing code, demonstrated through the process of creating an Objective-C project in Xcode.']}, {'end': 361.343, 'start': 93.044, 'title': 'Objective-c basics: main function and printf', 'summary': 'Covers the main.c file execution, printf function for printing words, for loops, and command line execution, with examples and explanations.', 'duration': 268.299, 'highlights': ['The main.c file is where the code executes, handling input arguments passed through the command line, and printf function is used for printing words.', 'Explanation of for loops and iterating through an array using argc variable, demonstrating command line execution for the program.', 'Demonstration of compiling and executing the program in the terminal using gcc command and passing string values as command line arguments.']}], 'duration': 361.254, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g89.jpg', 'highlights': ['The tutorial covers everything about Objective-C and also teaches a lot about programming in C, as they are quite similar.', 'The tutorial demonstrates the compatibility of Objective-C with different platforms, including Macintosh Linux and Windows.', 'The tutorial emphasizes the usage of Xcode and command line for writing and executing code, demonstrated through the process of creating an Objective-C project in Xcode.', 'The main.c file is where the code executes, handling input arguments passed through the command line, and printf function is used for printing words.', 'Explanation of for loops and iterating through an array using argc variable, demonstrating command line execution for the program.', 'Demonstration of compiling and executing the program in the terminal using gcc command and passing string values as command line arguments.', 'For Windows users, the tutorial suggests using mingw.org or sigwin.com to compile Objective-C programs.']}, {'end': 706.585, 'segs': [{'end': 400.717, 'src': 'embed', 'start': 374.156, 'weight': 0, 'content': [{'end': 380.383, 'text': 'which will demonstrate here as we go on and now jump into the different variable types that will be able to use to store data.', 'start': 374.156, 'duration': 6.227}, {'end': 382.084, 'text': "Now, basically, there's a ton of them.", 'start': 380.563, 'duration': 1.521}, {'end': 383.265, 'text': 'We have short.', 'start': 382.324, 'duration': 0.941}, {'end': 391.471, 'text': "And I'm going to also say exactly what we're going to have to use here if we want to transport a value stored in this variable over inside of here,", 'start': 383.685, 'duration': 7.786}, {'end': 392.992, 'text': 'inside of this string, to be printed out.', 'start': 391.471, 'duration': 1.521}, {'end': 397.035, 'text': "And in that situation, it's going to be percent sign D, just like we had before.", 'start': 393.212, 'duration': 3.823}, {'end': 400.717, 'text': "Likewise, you're also going to use percent sign D with integers.", 'start': 397.275, 'duration': 3.442}], 'summary': 'Demonstrating various variable types for data storage and printing with %d.', 'duration': 26.561, 'max_score': 374.156, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g374156.jpg'}, {'end': 475.502, 'src': 'embed', 'start': 450.909, 'weight': 2, 'content': [{'end': 456.714, 'text': 'which just means a lowercase letter followed by an uppercase for each individual word you want to focus in on for your variables.', 'start': 450.909, 'duration': 5.805}, {'end': 460.195, 'text': 'such as creating a data space for me to be able to store information.', 'start': 457.054, 'duration': 3.141}, {'end': 465.017, 'text': "Now I'm going to use printf again and this time I'm going to allow the user to enter information.", 'start': 460.215, 'duration': 4.802}, {'end': 471.12, 'text': "So I'm going to say enter temp in Fahrenheit and we always want to put a semicolon here at the end of our statements.", 'start': 465.057, 'duration': 6.063}, {'end': 475.502, 'text': 'Now, if I want to get information from my user, I could use scanf,', 'start': 471.44, 'duration': 4.062}], 'summary': 'Using printf and scanf to input user data for variable creation.', 'duration': 24.593, 'max_score': 450.909, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g450909.jpg'}, {'end': 510.432, 'src': 'embed', 'start': 482.726, 'weight': 1, 'content': [{'end': 488.333, 'text': "and then we're going to put and f temp and we're going to get more into what the and part is in a little bit.", 'start': 482.726, 'duration': 5.607}, {'end': 492.197, 'text': 'but for now just put and and f temp, whatever the variable is.', 'start': 488.333, 'duration': 3.864}, {'end': 498.525, 'text': "now what we'll be able to do is create another float and this is going to be c temp, which is going to represent celsius.", 'start': 492.197, 'duration': 6.328}, {'end': 500.047, 'text': "here i'm going to perform a little bit of math.", 'start': 498.525, 'duration': 1.522}, {'end': 506.37, 'text': "i'm going to say i'm going to want to get the Fahrenheit temperature and subtract 32 from it and divide by 1.8,", 'start': 500.047, 'duration': 6.323}, {'end': 510.432, 'text': 'and that is how we perform subtraction as well as division.', 'start': 506.37, 'duration': 4.062}], 'summary': 'Create a celsius temperature using fahrenheit conversion formula.', 'duration': 27.706, 'max_score': 482.726, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g482726.jpg'}, {'end': 629.864, 'src': 'embed', 'start': 576.604, 'weight': 3, 'content': [{'end': 579.285, 'text': "And we're going to put in an integer as what we want to store there.", 'start': 576.604, 'duration': 2.681}, {'end': 582.466, 'text': "And then we're going to get big int and add one to it.", 'start': 579.305, 'duration': 3.161}, {'end': 584.186, 'text': "Well, you're going to get a negative number.", 'start': 582.606, 'duration': 1.58}, {'end': 588.168, 'text': 'And this, by the way, is the absolute smallest number you can store in an integer.', 'start': 584.547, 'duration': 3.621}, {'end': 594.67, 'text': "So just be aware that there are size constraints in regards to how large of the different data types we're going to be able to store.", 'start': 588.248, 'duration': 6.422}, {'end': 597.691, 'text': 'Now a long is also a whole number type.', 'start': 594.91, 'duration': 2.781}, {'end': 600.811, 'text': "However, we're going to be able to make much larger longs.", 'start': 597.911, 'duration': 2.9}, {'end': 604.172, 'text': "As you can see right there, that's the largest long we could possibly create.", 'start': 601.231, 'duration': 2.941}, {'end': 609.333, 'text': "And if we want to save that and we want to execute this, you're also going to see that that gives you a negative number.", 'start': 604.412, 'duration': 4.921}, {'end': 612.974, 'text': "And that is the absolute smallest big long that we'd be able to use.", 'start': 609.473, 'duration': 3.501}, {'end': 617.095, 'text': 'So pretty much every data type in one way or another is going to have limitations.', 'start': 613.294, 'duration': 3.801}, {'end': 621.376, 'text': "But there's outside libraries we can use whenever we want to be able to work with bigger numbers like that.", 'start': 617.375, 'duration': 4.001}, {'end': 629.864, 'text': "If we want to be able to find out the absolute minimum float that we could possibly work with, we could come in here and let's put a sense sign and E.", 'start': 621.516, 'duration': 8.348}], 'summary': 'Different data types have size constraints, some even have absolute minimum and maximum values, but external libraries can be used for working with larger numbers.', 'duration': 53.26, 'max_score': 576.604, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g576604.jpg'}], 'start': 361.343, 'title': 'C programming variables, data types, limitations, and precision', 'summary': 'Covers c programming variables and data types including short, long, float, double, characters, structs, and pointers, with examples of temperature conversion. it also discusses the size limitations of different data types, such as integers and floats, and the loss of precision after six digits.', 'chapters': [{'end': 539.672, 'start': 361.343, 'title': 'C programming variables and data types', 'summary': 'Covers c programming variables, data types including short, long, float, double, characters, structs, and pointers, and demonstrates creating and manipulating variables for temperature conversion.', 'duration': 178.329, 'highlights': ['C programming variables and data types including short, long, float, double, characters, structs, and pointers The tutorial covers various C programming data types such as short, long, float, double, characters, structs, and pointers.', 'Demonstrates creating and manipulating variables for temperature conversion The transcript demonstrates the creation and manipulation of variables for temperature conversion, including obtaining user input, performing mathematical operations, and displaying the results.', 'Explanation of data type formatting for printf and scanf It explains the data type formatting for printf and scanf, including the use of %D for integers, %LD for longs, %F for floats, %LF for doubles, and %C for characters.']}, {'end': 706.585, 'start': 540.052, 'title': 'Data type limitations & precision', 'summary': 'Discusses the size limitations of different data types, such as integers and floats, with examples of the maximum and minimum values, and the loss of precision after six digits.', 'duration': 166.533, 'highlights': ['Integers have a maximum value of 2147483647, and adding 1 to this value results in a negative number, indicating the size constraints of integers. Maximum integer value: 2147483647', 'Longs can store larger numbers than integers, but they also have limitations, as the largest long value also results in a negative number when incremented by 1. Largest long value', 'The minimum and maximum float values are demonstrated using the math library, showing the constraints and precision limitations of float data type. Minimum and maximum float values']}], 'duration': 345.242, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g361343.jpg', 'highlights': ['C programming variables and data types including short, long, float, double, characters, structs, and pointers', 'Demonstrates creating and manipulating variables for temperature conversion', 'Explanation of data type formatting for printf and scanf', 'Integers have a maximum value of 2147483647, and adding 1 to this value results in a negative number, indicating the size constraints of integers', 'Longs can store larger numbers than integers, but they also have limitations, as the largest long value also results in a negative number when incremented by 1', 'The minimum and maximum float values are demonstrated using the math library, showing the constraints and precision limitations of float data type']}, {'end': 1207.909, 'segs': [{'end': 768.75, 'src': 'embed', 'start': 743.115, 'weight': 4, 'content': [{'end': 753.741, 'text': "that's going to say if the age is less than or equal to 6 in this situation, then we and say something like you are in kindergarten.", 'start': 743.115, 'duration': 10.626}, {'end': 759.784, 'text': "Like most other programming languages, we're also going to be able to come in here and go else if and put in another condition.", 'start': 754.101, 'duration': 5.683}, {'end': 763.407, 'text': "Let's say age is less than or equal to 13.", 'start': 759.924, 'duration': 3.483}, {'end': 768.75, 'text': "And then finally, as the final condition, we could say something like you're in high school.", 'start': 763.407, 'duration': 5.343}], 'summary': 'Programming logic for age-based education level determination.', 'duration': 25.635, 'max_score': 743.115, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g743115.jpg'}, {'end': 822.025, 'src': 'embed', 'start': 784.602, 'weight': 0, 'content': [{'end': 789.226, 'text': 'the comparison operators that are going to be available to us are also very similar to other languages.', 'start': 784.602, 'duration': 4.624}, {'end': 796.552, 'text': "We're going to have less than, greater than, less than or equal to, greater than or equal to, equal to, and not equal to.", 'start': 789.386, 'duration': 7.166}, {'end': 798.514, 'text': "So there's all the comparison operators.", 'start': 796.573, 'duration': 1.941}, {'end': 806.139, 'text': 'So what do we have in regards to logical operators? Well, logical operators are basically going to allow us to combine comparison operators.', 'start': 798.634, 'duration': 7.505}, {'end': 809.18, 'text': 'And we have and, we have or, and we have not.', 'start': 806.439, 'duration': 2.741}, {'end': 811.901, 'text': "And it's better to come in here and just demonstrate what those look like.", 'start': 809.42, 'duration': 2.481}, {'end': 822.025, 'text': 'So we could do something like if, and we could say age is greater than or equal to 12, or age is less than or equal to 13.', 'start': 812.041, 'duration': 9.984}], 'summary': 'Comparison and logical operators include <, >, <=, >=, =, !=, and, or, not.', 'duration': 37.423, 'max_score': 784.602, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g784602.jpg'}, {'end': 1207.909, 'src': 'embed', 'start': 1168.975, 'weight': 2, 'content': [{'end': 1175.7, 'text': "And there's also going to be shorthand notation that's going to allow us to go i minus equal to 5 or whatever it's going to be.", 'start': 1168.975, 'duration': 6.725}, {'end': 1179.744, 'text': "And we'll also be able to do that with multiplication as well as division.", 'start': 1176.101, 'duration': 3.643}, {'end': 1183.727, 'text': 'Now, I could go into all the different math functions that are available, but that would take forever.', 'start': 1179.864, 'duration': 3.863}, {'end': 1186.53, 'text': "Basically, we're going to have ceiling, as you can see right there.", 'start': 1184.028, 'duration': 2.502}, {'end': 1189.23, 'text': 'which is going to deal with rounding upwards.', 'start': 1187.008, 'duration': 2.222}, {'end': 1192.113, 'text': 'Floor, which is going to deal with rounding downwards.', 'start': 1189.43, 'duration': 2.683}, {'end': 1196.918, 'text': "You're going to have absolute values, square root, exponents.", 'start': 1192.453, 'duration': 4.465}, {'end': 1199.941, 'text': "I mean, there's tons of different things that are available to you.", 'start': 1196.978, 'duration': 2.963}, {'end': 1202.524, 'text': 'Logs and powers.', 'start': 1200.281, 'duration': 2.243}, {'end': 1207.909, 'text': "And I'll just let it to you to go and explore the different math library and all the different things that are available for you right there.", 'start': 1202.544, 'duration': 5.365}], 'summary': 'Python provides shorthand notation for arithmetic operations and a wide range of math functions, including ceiling, floor, absolute values, square root, exponents, logs, and powers.', 'duration': 38.934, 'max_score': 1168.975, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g1168975.jpg'}], 'start': 706.585, 'title': 'C programming concepts', 'summary': 'Covers c programming concepts such as comparison and logical operators, mathematical operations, if-else statements, and various math functions. it includes demonstrations of operators and mathematical notations, providing a comprehensive understanding of these concepts in c programming.', 'chapters': [{'end': 955.759, 'start': 706.585, 'title': 'C programming comparison and logical operators', 'summary': 'Covers c programming concepts including ignoring additional digits, comparing integer values, using if-else statements for conditions, demonstrating comparison and logical operators, and implementing ternary operators.', 'duration': 249.174, 'highlights': ['The program completely ignored an additional digit when adding to a precise decimal value, demonstrating the precision of decimal digits up to 6.', "Demonstrating the use of if-else statements to handle different conditions based on age, where it displays 'you are in elementary' when the age is less than or equal to 13.", 'Explanation of comparison operators in C programming, including less than, greater than, less than or equal to, greater than or equal to, equal to, and not equal to.', 'Demonstration of logical operators such as AND, OR, and NOT, and their application in combining comparison operations to perform specific actions.', "Illustration of the ternary operator in C programming to assign a value based on a comparison, where 'isHighSchool' is assigned a value of 0 when the age is not greater than 13."]}, {'end': 1207.909, 'start': 955.759, 'title': 'C programming math and notations', 'summary': 'Covers the use of if statements, mathematical operations including addition, subtraction, multiplication, division, modulus, casting, order of operations, shorthand notations, and various math functions available in c programming.', 'duration': 252.15, 'highlights': ['The chapter covers various mathematical operations including addition, subtraction, multiplication, division, and modulus, as well as casting and order of operations. It includes performing basic mathematical operations and explaining modulus, casting, and order of operations in C programming.', "The chapter explains shorthand notations such as i++, i+=5, and their functionality in C programming. It discusses the functionality of shorthand notations like i++, i+=5, i-=5, and their impact on the value of 'i' in C programming.", 'The chapter mentions the availability of various math functions in C programming, including ceiling, floor, absolute values, square root, exponents, logs, and powers. It introduces the availability of various math functions in C programming, such as ceiling, floor, absolute values, square root, exponents, logs, and powers.']}], 'duration': 501.324, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g706585.jpg', 'highlights': ['Demonstration of logical operators such as AND, OR, and NOT, and their application in combining comparison operations to perform specific actions.', 'Explanation of comparison operators in C programming, including less than, greater than, less than or equal to, greater than or equal to, equal to, and not equal to.', 'The chapter covers various mathematical operations including addition, subtraction, multiplication, division, and modulus, as well as casting and order of operations.', 'The chapter mentions the availability of various math functions in C programming, including ceiling, floor, absolute values, square root, exponents, logs, and powers.', "Demonstrating the use of if-else statements to handle different conditions based on age, where it displays 'you are in elementary' when the age is less than or equal to 13."]}, {'end': 2053.21, 'segs': [{'end': 1339.524, 'src': 'embed', 'start': 1308.453, 'weight': 0, 'content': [{'end': 1311.634, 'text': 'and it never prints out 9, because 9 jumps us completely out of the loop.', 'start': 1308.453, 'duration': 3.181}, {'end': 1313.995, 'text': "So that is how we're going to be able to use for loops.", 'start': 1311.895, 'duration': 2.1}, {'end': 1317.677, 'text': "Now, of course, there's also whiles as well as do while loops.", 'start': 1314.375, 'duration': 3.302}, {'end': 1325.719, 'text': "With a while loop, you're normally going to create a variable outside of the actual looping structure.", 'start': 1318.097, 'duration': 7.622}, {'end': 1327.08, 'text': "Let's just call it j.", 'start': 1325.759, 'duration': 1.321}, {'end': 1331.761, 'text': "And in this situation, I'm going to say while j is less than or equal to 10.", 'start': 1327.08, 'duration': 4.681}, {'end': 1333.882, 'text': "And we'll say printf.", 'start': 1331.761, 'duration': 2.121}, {'end': 1339.524, 'text': "And we'll just say j and print out the integer in this situation.", 'start': 1334.582, 'duration': 4.942}], 'summary': 'For loops iterate without 9; while loops use j<=10', 'duration': 31.071, 'max_score': 1308.453, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g1308453.jpg'}, {'end': 1845.485, 'src': 'embed', 'start': 1821.736, 'weight': 2, 'content': [{'end': 1828.819, 'text': 'something else that might be interesting is, even though we change the value, the memory address itself is still going to remain the same.', 'start': 1821.736, 'duration': 7.083}, {'end': 1833.681, 'text': 'so we can say random number, memory location, for example,', 'start': 1828.819, 'duration': 4.862}, {'end': 1837.762, 'text': "and in memory location we're going to be getting a pointer and then put the and symbol here.", 'start': 1833.681, 'duration': 4.081}, {'end': 1845.485, 'text': "of course, if we run that, you're going to see that, yes, indeed, the memory address is exactly the same as it was before ff7ac.", 'start': 1837.762, 'duration': 7.723}], 'summary': 'Value changes, memory address remains constant (ff7ac).', 'duration': 23.749, 'max_score': 1821.736, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g1821736.jpg'}, {'end': 1976.57, 'src': 'embed', 'start': 1951.503, 'weight': 1, 'content': [{'end': 1960.686, 'text': 'And if we execute, you can see that 98765 was indeed changed, and it changed inside a main because we passed a memory address and not a value.', 'start': 1951.503, 'duration': 9.183}, {'end': 1967.567, 'text': "Something else that's really interesting inside of C and Objective-C is we're going to be able to create structs, which I talked about before.", 'start': 1960.846, 'duration': 6.721}, {'end': 1971.909, 'text': "It's basically going to allow you to create a custom variable with more than one data type.", 'start': 1967.627, 'duration': 4.282}, {'end': 1976.57, 'text': "So let's say we wanted to create a struct, and let's call it superhero.", 'start': 1972.149, 'duration': 4.421}], 'summary': 'In c and objective-c, structs allow creating custom variables with multiple data types; demonstrated by changing 98765 inside a main using a memory address.', 'duration': 25.067, 'max_score': 1951.503, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g1951503.jpg'}], 'start': 1208.3, 'title': 'C programming fundamentals', 'summary': 'Covers looping, conditions, and functions including for loops, if statements, break and continue keywords, while loops, do while loops, and functions with emphasis on code reusability. it also covers c programming basics such as functions, pointers, and data structures with examples and explanations of pass by value, pass by reference, and struct creation and usage.', 'chapters': [{'end': 1492.582, 'start': 1208.3, 'title': 'Loops, conditions, and functions', 'summary': 'Covers looping with for loops, if statements, and break and continue keywords, while loops, do while loops, and functions with emphasis on reusing and organizing code, global and static variables.', 'duration': 284.282, 'highlights': ['The chapter covers looping with for loops, if statements, and break and continue keywords Demonstrates the use of for loops to print odd numbers from 0 to 9, utilizing if statements to control the loop execution, and employing break and continue keywords to exit the loop and skip specific numbers.', 'while loops and their use cases are explained Illustrates the use of while loops for iterating through a sequence and incrementing a variable within the loop, emphasizing the control and execution flow.', 'The concept and application of do while loops are detailed, with a focus on guaranteed execution Explains the characteristic of do while loops to ensure at least one iteration, using an example of a guessing game to demonstrate its functionality.', 'Functions, their purpose, and the use of global and static variables are covered Discusses the benefits of using functions to reuse and organize code, along with the accessibility and scope of global and static variables within functions and across the file.']}, {'end': 2053.21, 'start': 1492.703, 'title': 'C programming basics', 'summary': 'Covers c programming basics including functions, pointers, and data structures with examples and explanations of pass by value, pass by reference, and struct creation and usage.', 'duration': 560.507, 'highlights': ["Explaining pass by value and pass by reference with examples The chapter covers the concept of pass by value and pass by reference with an example of changing a variable's value inside a function and verifying the change outside the function.", 'Demonstrating the use of pointers and memory addresses The chapter delves into pointers, memory addresses, and the process of storing and accessing data using addresses, along with a demonstration of how to change the value stored at a specific memory address.', "Introduction to struct creation and usage The chapter introduces the concept of creating a struct in C and demonstrates how to define, assign values, and use a struct, using an example of creating a 'superhero' struct with multiple data types."]}], 'duration': 844.91, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g1208300.jpg', 'highlights': ['Covers looping with for loops, if statements, break and continue keywords, while loops, do while loops, and functions for code reusability.', 'Explains pass by value and pass by reference with examples.', 'Demonstrates the use of pointers and memory addresses.', 'Introduces struct creation and usage in C.']}, {'end': 2705.389, 'segs': [{'end': 2208.058, 'src': 'heatmap', 'start': 2103.905, 'weight': 0.837, 'content': [{'end': 2110.83, 'text': 'And you can see here, once again, we have what is called .m file is also referred to as an implementation file.', 'start': 2103.905, 'duration': 6.925}, {'end': 2111.791, 'text': 'So there we go.', 'start': 2110.89, 'duration': 0.901}, {'end': 2115.874, 'text': 'But this is the main part of our Objective-C application.', 'start': 2111.851, 'duration': 4.023}, {'end': 2121.058, 'text': 'Now the foundation part, this import up here, is known as the foundation framework.', 'start': 2116.054, 'duration': 5.004}, {'end': 2125.682, 'text': "And it's going to contain many fundamental classes you're going to use in your Objective-C programs.", 'start': 2121.098, 'duration': 4.584}, {'end': 2130.148, 'text': "And of course we're going to be importing a whole bunch of other classes in here real soon.", 'start': 2126.087, 'duration': 4.061}, {'end': 2134.329, 'text': "See down here there's main again and we can get rid of this stuff right here.", 'start': 2130.488, 'duration': 3.841}, {'end': 2138.31, 'text': "I'm going to talk about NS log and how it differs from printf.", 'start': 2134.349, 'duration': 3.961}, {'end': 2140.67, 'text': "But first off let's talk about auto release pull.", 'start': 2138.47, 'duration': 2.2}, {'end': 2147.031, 'text': 'Now as we create objects memory is going to be set aside for our application as well as our objects.', 'start': 2140.89, 'duration': 6.141}, {'end': 2150.132, 'text': 'And whenever those objects are no longer going to be needed,', 'start': 2147.551, 'duration': 2.581}, {'end': 2157.678, 'text': 'there is going to be memory that is going to be deallocated so that that memory will be released for other parts of our application.', 'start': 2150.572, 'duration': 7.106}, {'end': 2160.34, 'text': 'And an auto-release pull is going to do that for us.', 'start': 2157.978, 'duration': 2.362}, {'end': 2165.324, 'text': 'You also will often hear about ARC or automatic reference counting.', 'start': 2160.721, 'duration': 4.603}, {'end': 2172.07, 'text': "And basically what that does is it just automatically, for us, signals for the destruction of objects when they're no longer needed.", 'start': 2165.725, 'duration': 6.345}, {'end': 2177.876, 'text': "So that is why we're putting all that stuff inside of auto release pull with our little curly brackets.", 'start': 2172.35, 'duration': 5.526}, {'end': 2182.361, 'text': 'Now NS log is going to work exactly like printf or very similar anyway.', 'start': 2178.157, 'duration': 4.204}, {'end': 2186.065, 'text': 'There you can see right here it opens up and it printed out hello world.', 'start': 2182.582, 'duration': 3.483}, {'end': 2189.349, 'text': "The only difference is it's also going to put out like a time stamp there.", 'start': 2186.105, 'duration': 3.244}, {'end': 2191.612, 'text': "We're going to be creating a lot of objects.", 'start': 2189.629, 'duration': 1.983}, {'end': 2193.694, 'text': 'One of them is going to be an NS string.', 'start': 2191.732, 'duration': 1.962}, {'end': 2199.375, 'text': "And this is a string and it is going to, more specifically, it's going to be a string pointer.", 'start': 2194.113, 'duration': 5.262}, {'end': 2208.058, 'text': 'And very often, whenever you are creating an object and you want to define it but not give it any real, specific information,', 'start': 2200.035, 'duration': 8.023}], 'summary': 'Introduction to objective-c programming, including memory management and object creation.', 'duration': 104.153, 'max_score': 2103.905, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g2103905.jpg'}, {'end': 2276.758, 'src': 'embed', 'start': 2252.482, 'weight': 1, 'content': [{'end': 2259.547, 'text': 'and we can come in and we go at, and then we can say something like there we go, and because NSString is actually an object,', 'start': 2252.482, 'duration': 7.065}, {'end': 2266.131, 'text': "it's going to have a bunch of functions or methods as they are referred to, and now I'll show you how to deal with them.", 'start': 2259.547, 'duration': 6.584}, {'end': 2272.756, 'text': "first, what I'm going to do is I'm going to use the NSString objects and show you how to interact with objects that way,", 'start': 2266.131, 'duration': 6.625}, {'end': 2276.758, 'text': "and then I'm going to show you how to make custom objects so size of string.", 'start': 2272.756, 'duration': 4.002}], 'summary': 'Demonstrating interaction with nsstring objects and creating custom objects.', 'duration': 24.276, 'max_score': 2252.482, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g2252482.jpg'}, {'end': 2442.69, 'src': 'embed', 'start': 2413.482, 'weight': 2, 'content': [{'end': 2418.424, 'text': "And here we're saying is the quote string equal to the my name string? Well, of course, that's going to come back false.", 'start': 2413.482, 'duration': 4.942}, {'end': 2426.243, 'text': "And just to prove that you can still use printf, see, there's printf even though we're inside of an Objective-C program or application.", 'start': 2418.82, 'duration': 7.423}, {'end': 2430.844, 'text': "So we can say, are strings equal? And then we'll get our answer right here.", 'start': 2426.563, 'duration': 4.281}, {'end': 2437.447, 'text': "Is string equal? And if we run that, you're going to see that the answer rString is equal comes back as 0 or false.", 'start': 2431.285, 'duration': 6.162}, {'end': 2442.69, 'text': 'If you wanted to convert an NSString into a regular old string, you could, of course, do that as well.', 'start': 2437.467, 'duration': 5.223}], 'summary': 'Using printf inside objective-c, comparing strings, and converting nsstring to regular string.', 'duration': 29.208, 'max_score': 2413.482, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g2413482.jpg'}, {'end': 2676.474, 'src': 'embed', 'start': 2650.067, 'weight': 0, 'content': [{'end': 2658.354, 'text': "and then we can go constant character and let's say we want to call this new quote is equal to, and we could go whole quotes followed by,", 'start': 2650.067, 'duration': 8.287}, {'end': 2662.658, 'text': 'and then string by replacing characters in range.', 'start': 2658.354, 'duration': 4.304}, {'end': 2666.168, 'text': "after you do this enough, you'll eventually get used to using it.", 'start': 2662.658, 'duration': 3.51}, {'end': 2668.989, 'text': 'there it is string by replacing characters in range.', 'start': 2666.168, 'duration': 2.821}, {'end': 2670.61, 'text': 'objective c is a little bit weird.', 'start': 2668.989, 'duration': 1.621}, {'end': 2676.474, 'text': "there's some strange sort of things i want you to do here, but either way then you type in your range with string.", 'start': 2670.61, 'duration': 5.864}], 'summary': 'Learning to use string manipulation in objective c can be challenging, but with practice, proficiency can be achieved.', 'duration': 26.407, 'max_score': 2650.067, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g2650067.jpg'}], 'start': 2053.21, 'title': 'Objective-c string manipulation', 'summary': 'Covers objective-c string manipulation, including creating dynamic strings, comparing string equality, converting nsstring to regular string, converting to uppercase, combining, searching, and replacing strings, with examples and explanations.', 'chapters': [{'end': 2335.106, 'start': 2053.21, 'title': 'Introduction to objective-c programming', 'summary': 'Introduces objective-c programming by highlighting its unique features, such as creating objects, using nsstring objects to interact with strings, and discussing memory management with auto-release pool and arc.', 'duration': 281.896, 'highlights': ['The chapter discusses the unique features of Objective-C programming, such as creating and interacting with objects, using NSString objects for string manipulation, and memory management concepts like auto-release pool and ARC.', 'Objective-C introduces the concept of creating objects with unique methods, as demonstrated by using NSString objects to determine the length of a string and accessing specific characters within the string.', 'The instructor explains memory management in Objective-C, emphasizing the use of auto-release pool to deallocate memory for objects and introduces the concept of automatic reference counting (ARC) for object destruction when no longer needed.', "The chapter compares and contrasts Objective-C with C, highlighting its distinct features and functions, providing a comprehensive understanding of the language's capabilities and applications."]}, {'end': 2472.381, 'start': 2335.206, 'title': 'Objective-c string manipulation', 'summary': 'Covers string manipulation in objective-c, including creating dynamic strings, comparing string equality using booleans, and converting nsstring to a regular string, showcasing the use of printf and nested messages.', 'duration': 137.175, 'highlights': ['The chapter explains how to create dynamic strings in Objective-C using string formatting and demonstrates string equality comparison using booleans, showcasing the use of printf and returning false when comparing unequal strings.', 'The chapter also discusses the process of converting an NSString into a regular string, involving the use of nested messages within the object.', 'The use of constants with const and uppercase string conversion is also demonstrated in the chapter.']}, {'end': 2705.389, 'start': 2472.621, 'title': 'String manipulation in objective c', 'summary': 'Covers string manipulation in objective c, including converting to uppercase, combining strings, searching for strings, replacing characters, and converting to a regular string, with examples and explanations throughout.', 'duration': 232.768, 'highlights': ['The chapter covers various string manipulation techniques in Objective C, such as converting to uppercase, combining strings, searching for strings, and replacing characters, with practical examples and explanations.', 'Demonstrates how to convert a string to uppercase and into a regular string in Objective C, providing a clear explanation and practical demonstration.', 'Explains the process of combining strings in Objective C, including a demonstration of appending a string to another string with a practical example.', 'Shows how to search for a specific string within another string in Objective C, and explains the process of defining a range for string search, with a practical example.', 'Illustrates the process of replacing characters in a string in Objective C, including defining a range for replacement and demonstrating the practical application of replacing characters within a string.']}], 'duration': 652.179, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g2053210.jpg', 'highlights': ['Covers string manipulation in Objective-C, including dynamic string creation, comparison, conversion, and manipulation techniques.', 'Discusses unique features of Objective-C, such as creating and interacting with objects, using NSString objects, and memory management concepts.', 'Explains creating dynamic strings in Objective-C using string formatting and demonstrates string equality comparison using booleans.', 'Covers converting NSString to a regular string, using constants with const, and uppercase string conversion in Objective-C.', 'Demonstrates various string manipulation techniques in Objective-C, such as converting to uppercase, combining, searching, and replacing strings.']}, {'end': 3145.386, 'segs': [{'end': 2744.261, 'src': 'embed', 'start': 2705.729, 'weight': 0, 'content': [{'end': 2712.113, 'text': 'Now, one thing you should know about using NSString is this is what is called an immutable object.', 'start': 2705.729, 'duration': 6.384}, {'end': 2713.377, 'text': 'Sounds like a big word.', 'start': 2712.577, 'duration': 0.8}, {'end': 2718.518, 'text': 'It just basically means that once you assign a value to it, that value cannot be changed.', 'start': 2713.417, 'duration': 5.101}, {'end': 2722.759, 'text': "We're going to be creating new arrays every single time we make any type of changes.", 'start': 2718.638, 'duration': 4.121}, {'end': 2731.26, 'text': "If, however, you wanted to have strings that could change, you're going to instead use NSMutable strings.", 'start': 2723.239, 'duration': 8.021}, {'end': 2735.081, 'text': "So let's say we wanted to create a grocery list, for example.", 'start': 2731.52, 'duration': 3.561}, {'end': 2736.101, 'text': 'We could do so.', 'start': 2735.341, 'duration': 0.76}, {'end': 2739.342, 'text': 'And this is going to be NSMutable string, like this.', 'start': 2736.521, 'duration': 2.821}, {'end': 2744.261, 'text': 'If we wanted to define the initial capacity, but knowing that it could definitely change.', 'start': 2739.622, 'duration': 4.639}], 'summary': 'Using nsstring creates immutable objects, while nsmutablestring allows for change.', 'duration': 38.532, 'max_score': 2705.729, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g2705729.jpg'}, {'end': 2883.721, 'src': 'embed', 'start': 2856.607, 'weight': 3, 'content': [{'end': 2860.769, 'text': "And now we're going to take a look at how arrays work inside of Objective-C.", 'start': 2856.607, 'duration': 4.162}, {'end': 2865.812, 'text': 'So NS array is the name for an array inside of Objective-C.', 'start': 2860.889, 'duration': 4.923}, {'end': 2869.034, 'text': "And let's say we have something like office supplies.", 'start': 2866.112, 'duration': 2.922}, {'end': 2875.537, 'text': 'We could then define them by putting the at symbol like this, followed by all of the different things that you want inside of here.', 'start': 2869.414, 'duration': 6.123}, {'end': 2876.998, 'text': "So we'll say pencils.", 'start': 2875.637, 'duration': 1.361}, {'end': 2883.721, 'text': 'And arrays are just like boxes inside of boxes that all have indexes or labels or whatever you want to refer to them as.', 'start': 2877.538, 'duration': 6.183}], 'summary': 'Introduction to ns arrays in objective-c with a comparison to office supplies as an analogy.', 'duration': 27.114, 'max_score': 2856.607, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g2856607.jpg'}, {'end': 2927.963, 'src': 'embed', 'start': 2898.089, 'weight': 4, 'content': [{'end': 2903.892, 'text': 'And then remember the first item inside of an array is an index 0.', 'start': 2898.089, 'duration': 5.803}, {'end': 2905.413, 'text': 'Start off by counting to 0.', 'start': 2903.892, 'duration': 1.521}, {'end': 2907.976, 'text': "And then we could come in here and print all of them out if we'd want.", 'start': 2905.413, 'duration': 2.563}, {'end': 2910.318, 'text': "Again, we're going to do the same sort of similar thing.", 'start': 2908.236, 'duration': 2.082}, {'end': 2912.84, 'text': 'At sign and office supplies.', 'start': 2910.538, 'duration': 2.302}, {'end': 2914.922, 'text': 'And we put the at symbol in there again.', 'start': 2912.86, 'duration': 2.062}, {'end': 2917.245, 'text': "And this time we'll just type in office supplies.", 'start': 2914.942, 'duration': 2.303}, {'end': 2918.706, 'text': 'No specific anything.', 'start': 2917.345, 'duration': 1.361}, {'end': 2927.963, 'text': "and run that and you can see that the first thing in our array is pencils and you can see right here office supplies and it's going to print all of those out all at one time.", 'start': 2919.133, 'duration': 8.83}], 'summary': 'A demonstration of array indexing and printing multiple items from an array.', 'duration': 29.874, 'max_score': 2898.089, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g2898089.jpg'}, {'end': 3042.211, 'src': 'embed', 'start': 3019.11, 'weight': 5, 'content': [{'end': 3028.779, 'text': 'now again, ns array by default is going to be immutable, which, once again, that just means that it is not going to allow us to change it.', 'start': 3019.11, 'duration': 9.669}, {'end': 3031.362, 'text': 'it is going to have to create a new array each time.', 'start': 3028.779, 'duration': 2.583}, {'end': 3039.43, 'text': "if you want to create a mutable array that you can add objects to, you go ns mutable array and let's say that we want to create one called heroes.", 'start': 3031.362, 'duration': 8.068}, {'end': 3041.21, 'text': 'This is NSMutable.', 'start': 3039.81, 'duration': 1.4}, {'end': 3042.211, 'text': 'Array, of course.', 'start': 3041.51, 'duration': 0.701}], 'summary': 'Ns array by default is immutable, requiring new array creation each time. mutable array can be created using nsmutable.', 'duration': 23.101, 'max_score': 3019.11, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g3019110.jpg'}], 'start': 2705.729, 'title': 'Nsstring, nsmutablestring, and objective-c arrays', 'summary': 'Explains the difference between nsstring and nsmutablestring and covers the creation, modification, and manipulation of nsmutablestring, along with the usage of arrays in objective-c, including methods for searching, counting, adding, inserting, and removing items with relevant code examples.', 'chapters': [{'end': 2856.257, 'start': 2705.729, 'title': 'Nsstring and nsmutablestring', 'summary': 'Explains the difference between nsstring and nsmutablestring, showcasing how to create, modify, append, delete, insert, and replace characters in nsmutablestring, with an example of a grocery list.', 'duration': 150.528, 'highlights': ['The chapter explains the difference between NSString and NSMutableString It clarifies the concept of immutable objects and introduces NSMutableString for changeable strings.', 'Showcasing how to create, modify, append, delete, insert, and replace characters in NSMutableString Demonstrates various operations on NSMutableString, including creating, modifying, appending, deleting, inserting, and replacing characters.', 'Example of creating a grocery list using NSMutableString Illustrates the practical use of NSMutableString by creating a grocery list and performing operations on it.']}, {'end': 3145.386, 'start': 2856.607, 'title': 'Objective-c arrays', 'summary': 'Explains how arrays work in objective-c, covering the creation, access, modification, and iteration of arrays, including methods for searching, counting, adding, inserting, and removing items with relevant code examples.', 'duration': 288.779, 'highlights': ['Explained the creation and accessing of arrays in Objective-C with code examples, emphasizing the use of indexes and the process of accessing specific items within the array. ', 'Demonstrated the usage of methods for searching for items within the array and obtaining the count of items, providing code examples and explanations for each. ', 'Illustrated the creation, adding, inserting, and removing items from a mutable array, showcasing code examples and the resulting array modifications. ', 'Highlighted the iteration through the array using a loop and the printing of all items, offering an example of how to iterate through the array in Objective-C. ']}], 'duration': 439.657, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g2705729.jpg', 'highlights': ['Explains the difference between NSString and NSMutableString, clarifying the concept of immutable objects and introducing NSMutableString for changeable strings.', 'Demonstrates various operations on NSMutableString, including creating, modifying, appending, deleting, inserting, and replacing characters.', 'Illustrates the practical use of NSMutableString by creating a grocery list and performing operations on it.', 'Explained the creation and accessing of arrays in Objective-C with code examples, emphasizing the use of indexes and the process of accessing specific items within the array.', 'Demonstrated the usage of methods for searching for items within the array and obtaining the count of items, providing code examples and explanations for each.', 'Illustrated the creation, adding, inserting, and removing items from a mutable array, showcasing code examples and the resulting array modifications.', 'Highlighted the iteration through the array using a loop and the printing of all items, offering an example of how to iterate through the array in Objective-C.']}, {'end': 3651.105, 'segs': [{'end': 3197.025, 'src': 'embed', 'start': 3168.146, 'weight': 0, 'content': [{'end': 3170.688, 'text': "We're going to select Cocoa Class and click on Next.", 'start': 3168.146, 'duration': 2.542}, {'end': 3178.654, 'text': "We're going to call this guy Animal and subclass of NSObject, which is the number one object that is used for everything.", 'start': 3170.968, 'duration': 7.686}, {'end': 3179.695, 'text': 'And click on Next.', 'start': 3178.834, 'duration': 0.861}, {'end': 3181.156, 'text': "And then we'll click on Create.", 'start': 3180.075, 'duration': 1.081}, {'end': 3184.078, 'text': "And here you're going to see it actually created a header file.", 'start': 3181.376, 'duration': 2.702}, {'end': 3189.763, 'text': "And this is where we're going to be declaring our instance variables or properties or attributes or whatever you want to call them.", 'start': 3184.278, 'duration': 5.485}, {'end': 3197.025, 'text': "as well as the methods, and then in the M file, that is where we're going to be implementing or writing the code for our methods.", 'start': 3190.063, 'duration': 6.962}], 'summary': 'Creating a cocoa class named animal, subclass of nsobject, with header and implementation files.', 'duration': 28.879, 'max_score': 3168.146, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g3168146.jpg'}, {'end': 3371.92, 'src': 'heatmap', 'start': 3271.937, 'weight': 0.839, 'content': [{'end': 3277.639, 'text': "property and a string, and maybe it'll have a custom sound that it uses.", 'start': 3271.937, 'duration': 5.702}, {'end': 3285.482, 'text': "let's also create a primitive inside of here property float weight and just remember if it's a primitive, it's not an object.", 'start': 3277.639, 'duration': 7.843}, {'end': 3289.263, 'text': "that means it doesn't need the little star inside of there, which is our pointer.", 'start': 3285.482, 'duration': 3.781}, {'end': 3292.989, 'text': 'And then we need to define different methods that we want to use inside of here.', 'start': 3289.568, 'duration': 3.421}, {'end': 3298.571, 'text': 'Well, every time you create an object, it is going to call an initialization for our object,', 'start': 3293.209, 'duration': 5.362}, {'end': 3301.472, 'text': 'which is going to set certain attributes that we might want to set.', 'start': 3298.571, 'duration': 2.901}, {'end': 3304.693, 'text': 'So those are automatically generated by default for us.', 'start': 3301.772, 'duration': 2.921}, {'end': 3311.175, 'text': "But let's say that we want to come in here and define a custom way for us to initialize our files.", 'start': 3304.753, 'duration': 6.422}, {'end': 3313.956, 'text': "Now, again, remember, we're in the header section here.", 'start': 3311.275, 'duration': 2.681}, {'end': 3317.178, 'text': "So what we're going to do is define what will be returned.", 'start': 3314.217, 'duration': 2.961}, {'end': 3318.518, 'text': 'So an instance type.', 'start': 3317.358, 'duration': 1.16}, {'end': 3321.588, 'text': 'which is going to be specifically an animal instance.', 'start': 3318.905, 'duration': 2.683}, {'end': 3324.991, 'text': 'And then we could say something like init with name.', 'start': 3321.948, 'duration': 3.043}, {'end': 3330.457, 'text': "And let's say that whenever this is created, it's automatically going to be past a string.", 'start': 3325.392, 'duration': 5.065}, {'end': 3331.598, 'text': 'Have to put the star there.', 'start': 3330.657, 'duration': 0.941}, {'end': 3337.391, 'text': "and let's say that it's going to be possible to create an animal object and pass in a default value.", 'start': 3332.006, 'duration': 5.385}, {'end': 3339.553, 'text': "Let's go and create a couple more methods.", 'start': 3337.551, 'duration': 2.002}, {'end': 3346.499, 'text': "Let's say we have another method that our object's going to have that is not going to return anything, and it's going to be void.", 'start': 3339.973, 'duration': 6.526}, {'end': 3348.08, 'text': 'And the negative part.', 'start': 3346.799, 'duration': 1.281}, {'end': 3351.423, 'text': 'whenever we put that there, that means that this is an instance method,', 'start': 3348.08, 'duration': 3.343}, {'end': 3356.547, 'text': "which means it's a method that's specific to objects that we create of type animal.", 'start': 3351.423, 'duration': 5.124}, {'end': 3360.271, 'text': "If we put a plus sign in there, however, that means it's a class method.", 'start': 3356.788, 'duration': 3.483}, {'end': 3365.175, 'text': 'And a class method will not be accessible whenever we create an animal object.', 'start': 3360.631, 'duration': 4.544}, {'end': 3366.996, 'text': "We'll get more into that here as we go on.", 'start': 3365.355, 'duration': 1.641}, {'end': 3369.778, 'text': "So let's say this one is just getInfo.", 'start': 3367.216, 'duration': 2.562}, {'end': 3371.92, 'text': 'It also has not passed any attributes.', 'start': 3370.119, 'duration': 1.801}], 'summary': 'Creation of a custom animal object with specific methods and initialization process.', 'duration': 99.983, 'max_score': 3271.937, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g3271937.jpg'}, {'end': 3376.604, 'src': 'embed', 'start': 3346.799, 'weight': 2, 'content': [{'end': 3348.08, 'text': 'And the negative part.', 'start': 3346.799, 'duration': 1.281}, {'end': 3351.423, 'text': 'whenever we put that there, that means that this is an instance method,', 'start': 3348.08, 'duration': 3.343}, {'end': 3356.547, 'text': "which means it's a method that's specific to objects that we create of type animal.", 'start': 3351.423, 'duration': 5.124}, {'end': 3360.271, 'text': "If we put a plus sign in there, however, that means it's a class method.", 'start': 3356.788, 'duration': 3.483}, {'end': 3365.175, 'text': 'And a class method will not be accessible whenever we create an animal object.', 'start': 3360.631, 'duration': 4.544}, {'end': 3366.996, 'text': "We'll get more into that here as we go on.", 'start': 3365.355, 'duration': 1.641}, {'end': 3369.778, 'text': "So let's say this one is just getInfo.", 'start': 3367.216, 'duration': 2.562}, {'end': 3371.92, 'text': 'It also has not passed any attributes.', 'start': 3370.119, 'duration': 1.801}, {'end': 3376.604, 'text': "While this doesn't really have much to do with an animal, I'm just trying to think of something.", 'start': 3372.301, 'duration': 4.303}], 'summary': 'Differentiates between instance and class methods in object-oriented programming.', 'duration': 29.805, 'max_score': 3346.799, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g3346799.jpg'}, {'end': 3511.617, 'src': 'heatmap', 'start': 3459.116, 'weight': 0.853, 'content': [{'end': 3464.84, 'text': "It's going to receive two attributes, one being number one and the other one being number two, both of which being integers.", 'start': 3459.116, 'duration': 5.724}, {'end': 3467.662, 'text': "It's going to sum them and return those as an integer.", 'start': 3464.86, 'duration': 2.802}, {'end': 3471.666, 'text': "Well, now what we're going to be able to do is jump into the animal.m.", 'start': 3467.863, 'duration': 3.803}, {'end': 3476.009, 'text': 'file this guy right here and implement all of those methods that we just created.', 'start': 3471.666, 'duration': 4.343}, {'end': 3481.834, 'text': 'Now you can see it has a reference to the animal.h file, which is where we defined what we want to create.', 'start': 3476.209, 'duration': 5.625}, {'end': 3487.599, 'text': "And here let's say we want to throw in the initialization file or the constructor as it's very often called.", 'start': 3482.114, 'duration': 5.485}, {'end': 3489.76, 'text': "Let's do something a little bit interesting here.", 'start': 3487.799, 'duration': 1.961}, {'end': 3491.382, 'text': "Let's come over and open this guy up.", 'start': 3489.84, 'duration': 1.542}, {'end': 3495.465, 'text': "And then let's specifically come on down here to where this guy is right here.", 'start': 3491.682, 'duration': 3.783}, {'end': 3496.366, 'text': 'Click on that.', 'start': 3495.725, 'duration': 0.641}, {'end': 3499.628, 'text': "Then down inside of here we're going to click and we're going to go init.", 'start': 3496.706, 'duration': 2.922}, {'end': 3501.95, 'text': 'See right here, Objective-C, init method.', 'start': 3499.968, 'duration': 1.982}, {'end': 3504.632, 'text': "That's going to allow us to drag and drop this over here.", 'start': 3502.07, 'duration': 2.562}, {'end': 3510.537, 'text': "And it's automatically going to put in all the code that we are going to need for our initialization method that we want to create.", 'start': 3504.812, 'duration': 5.725}, {'end': 3511.617, 'text': 'This is the default.', 'start': 3510.757, 'duration': 0.86}], 'summary': 'The transcript discusses creating and implementing methods in an objective-c file, including an init method for object initialization.', 'duration': 52.501, 'max_score': 3459.116, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g3459116.jpg'}, {'end': 3581.362, 'src': 'embed', 'start': 3550.074, 'weight': 4, 'content': [{'end': 3553.615, 'text': 'And the superclass is going to be NSObject, this guy right here.', 'start': 3550.074, 'duration': 3.541}, {'end': 3558.774, 'text': 'And then down inside of here what we could do is we could say self for the object being created.', 'start': 3553.971, 'duration': 4.803}, {'end': 3566.259, 'text': 'We could change the name or create a default name of no name whenever the object is generated.', 'start': 3559.014, 'duration': 7.245}, {'end': 3569.261, 'text': "And then we'll know that our animal hasn't been assigned a name yet.", 'start': 3566.619, 'duration': 2.642}, {'end': 3573.903, 'text': 'Now what we can do is we can create our customized init.', 'start': 3569.661, 'duration': 4.242}, {'end': 3581.362, 'text': "And how we're going to do that is this again is going to reserve an instance type, and that just means this animal instance type.", 'start': 3574.144, 'duration': 7.218}], 'summary': 'Creating a customized init for nsobject superclass to reserve an animal instance type.', 'duration': 31.288, 'max_score': 3550.074, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g3550074.jpg'}], 'start': 3145.626, 'title': 'Custom object creation and method creation in cocoa and objective-c', 'summary': 'Covers creating custom objects in cocoa, including declaring attributes, creating methods, and initializing objects, with a focus on subclassing nsobject and using property and method declarations. it also explains how to create methods in objective-c, defining method names, attribute types, return types, and implementing these methods in the animal.m file, along with the process of initializing an object and creating customized initialization methods.', 'chapters': [{'end': 3366.996, 'start': 3145.626, 'title': 'Custom object creation in cocoa', 'summary': 'Covers creating custom objects in cocoa, including declaring attributes, creating methods, and initializing objects, with a focus on subclassing nsobject and using property and method declarations. it also explains the difference between instance and class methods.', 'duration': 221.37, 'highlights': ['The chapter covers creating custom objects in Cocoa, including declaring attributes, creating methods, and initializing objects. The chapter discusses the process of creating custom objects in Cocoa, emphasizing the declaration of attributes, creation of methods, and object initialization.', 'A focus on subclassing NSObject and using property and method declarations. The importance of subclassing NSObject and utilizing property and method declarations to create custom objects is highlighted in the chapter.', 'Explanation of the difference between instance and class methods. The chapter explains the distinction between instance and class methods, clarifying their accessibility and usage in Cocoa custom object creation.']}, {'end': 3651.105, 'start': 3367.216, 'title': 'Creating methods in objective-c', 'summary': "Explains how to create methods in objective-c, including defining method names, attribute types, and return types, and implementing these methods in the animal.m file. it also details the process of initializing an object and creating customized initialization methods, with a reference to the superclass nsobject and the use of 'self' to refer to the instance being initialized.", 'duration': 283.889, 'highlights': ['The chapter explains how to create methods in Objective-C, including defining method names, attribute types, and return types The transcript provides a detailed explanation of creating methods in Objective-C, covering the process of defining method names, attribute types, and return types.', "The process of initializing an object and creating customized initialization methods is detailed The transcript details the process of initializing an object, creating customized initialization methods, and refers to the superclass NSObject and the use of 'self' to refer to the instance being initialized.", 'Implementing these methods in the animal.m file is explained The chapter explains the implementation of the created methods in the animal.m file, highlighting the process of defining and implementing methods in the context of Objective-C programming.']}], 'duration': 505.479, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g3145626.jpg', 'highlights': ['The chapter covers creating custom objects in Cocoa, emphasizing the declaration of attributes, creation of methods, and object initialization.', 'A focus on subclassing NSObject and using property and method declarations to create custom objects is highlighted in the chapter.', 'The chapter explains the distinction between instance and class methods, clarifying their accessibility and usage in Cocoa custom object creation.', 'The chapter explains how to create methods in Objective-C, covering the process of defining method names, attribute types, and return types.', "The transcript details the process of initializing an object, creating customized initialization methods, and refers to the superclass NSObject and the use of 'self' to refer to the instance being initialized.", 'The chapter explains the implementation of the created methods in the animal.m file, highlighting the process of defining and implementing methods in the context of Objective-C programming.']}, {'end': 4680.579, 'segs': [{'end': 3929.4, 'src': 'embed', 'start': 3905.407, 'weight': 1, 'content': [{'end': 3912.15, 'text': "and we're going to say next, and we'll call this koala and subclass of this is going to be of animal.", 'start': 3905.407, 'duration': 6.743}, {'end': 3913.867, 'text': 'And Objective-C, of course.', 'start': 3912.666, 'duration': 1.201}, {'end': 3915.328, 'text': 'Nothing else is going to change there.', 'start': 3914.007, 'duration': 1.321}, {'end': 3916.829, 'text': 'And then just click on Create.', 'start': 3915.649, 'duration': 1.18}, {'end': 3922.774, 'text': "And now we have a subclass named Koala that's going to inherit everything from our animal class.", 'start': 3917.07, 'duration': 5.704}, {'end': 3926.797, 'text': 'And how we know it inherited everything from the animal class is there it is right there.', 'start': 3923.155, 'duration': 3.642}, {'end': 3929.4, 'text': "That is how we know that it's inheriting all that stuff.", 'start': 3926.858, 'duration': 2.542}], 'summary': 'Creating a subclass named koala in objective-c, inheriting from the animal class.', 'duration': 23.993, 'max_score': 3905.407, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g3905407.jpg'}, {'end': 4125.189, 'src': 'heatmap', 'start': 4072.769, 'weight': 1, 'content': [{'end': 4074.49, 'text': "So that's how we overrode those.", 'start': 4072.769, 'duration': 1.721}, {'end': 4075.29, 'text': 'And how they work.', 'start': 4074.61, 'duration': 0.68}, {'end': 4083.83, 'text': 'Now, categories are going to allow us to split our class into many different files and at the same time keep our file sizes manageable.', 'start': 4075.703, 'duration': 8.127}, {'end': 4089.895, 'text': "And how we're going to create a category is once again, come up here, right, click on this File New,", 'start': 4084.13, 'duration': 5.765}, {'end': 4093.238, 'text': "and then we're going to click on Objective-C file, not Coca Class.", 'start': 4089.895, 'duration': 3.343}, {'end': 4094.419, 'text': 'Objective-C file.', 'start': 4093.238, 'duration': 1.181}, {'end': 4099.343, 'text': "click on Next, come down here, click on Category, and I'm going to call this Exam.", 'start': 4094.419, 'duration': 4.924}, {'end': 4101.904, 'text': 'And the class specific to it is going to be Animal.', 'start': 4099.542, 'duration': 2.362}, {'end': 4107.866, 'text': "and click on Next, and then click on Create, and it's going to create AnimalPlusExam.h.", 'start': 4102.225, 'duration': 5.641}, {'end': 4116.587, 'text': "Now in our header file that we have here for AnimalExam, at runtime we're going to be able to add methods as part of the Animal class.", 'start': 4108.206, 'duration': 8.381}, {'end': 4118.707, 'text': "And what this one's going to do.", 'start': 4117.368, 'duration': 1.339}, {'end': 4125.189, 'text': "let's create something that's a Boolean and let's call it CheckedByVet and create another one.", 'start': 4118.707, 'duration': 6.482}], 'summary': 'Categories split class into manageable files, add methods at runtime.', 'duration': 52.42, 'max_score': 4072.769, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g4072769.jpg'}, {'end': 4099.343, 'src': 'embed', 'start': 4075.703, 'weight': 2, 'content': [{'end': 4083.83, 'text': 'Now, categories are going to allow us to split our class into many different files and at the same time keep our file sizes manageable.', 'start': 4075.703, 'duration': 8.127}, {'end': 4089.895, 'text': "And how we're going to create a category is once again, come up here, right, click on this File New,", 'start': 4084.13, 'duration': 5.765}, {'end': 4093.238, 'text': "and then we're going to click on Objective-C file, not Coca Class.", 'start': 4089.895, 'duration': 3.343}, {'end': 4094.419, 'text': 'Objective-C file.', 'start': 4093.238, 'duration': 1.181}, {'end': 4099.343, 'text': "click on Next, come down here, click on Category, and I'm going to call this Exam.", 'start': 4094.419, 'duration': 4.924}], 'summary': 'Categories help split class into files, manage file sizes. create category in objective-c file named exam.', 'duration': 23.64, 'max_score': 4075.703, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g4075703.jpg'}, {'end': 4266.578, 'src': 'heatmap', 'start': 4163.344, 'weight': 0.727, 'content': [{'end': 4170.109, 'text': 'we could then go ns log at did percent, sign at check if herbie got its shots.', 'start': 4163.344, 'duration': 6.765}, {'end': 4172.89, 'text': 'of course we could have that set to a variable and turn it on,', 'start': 4170.109, 'duration': 2.781}, {'end': 4181.897, 'text': "turn it off and get herbie's name followed by herbie checked by that and then also herbie, get shots and call that method.", 'start': 4172.89, 'duration': 9.007}, {'end': 4183.178, 'text': 'and then to get that to work,', 'start': 4181.897, 'duration': 1.281}, {'end': 4192.417, 'text': "all we're going to need to do is import that category and that's just animal exam automatically is going to place that inside of there and all of that's going to work.", 'start': 4183.178, 'duration': 9.239}, {'end': 4195.859, 'text': 'And there you can see, did Herbie receive shots? Yes, Herbie got its shots.', 'start': 4192.577, 'duration': 3.282}, {'end': 4204.184, 'text': 'Another thing we can do is allow files to import a category, but at the same time block access unless the class is a subclass.', 'start': 4196.199, 'duration': 7.985}, {'end': 4209.787, 'text': "So we're not going to be able to work with anything unless it is a subclass of this class that we're working with.", 'start': 4204.544, 'duration': 5.243}, {'end': 4211.748, 'text': "so we're gonna come over here right.", 'start': 4210.087, 'duration': 1.661}, {'end': 4214.549, 'text': 'click on this file, new file again, source.', 'start': 4211.748, 'duration': 2.801}, {'end': 4216.29, 'text': 'this is gonna be an objective C file.', 'start': 4214.549, 'duration': 1.741}, {'end': 4219.571, 'text': "click on next and I'm gonna call this protected.", 'start': 4216.29, 'duration': 3.281}, {'end': 4221.452, 'text': 'this is gonna be a category as well.', 'start': 4219.571, 'duration': 1.881}, {'end': 4224.374, 'text': "actually it's called this event category type, animal.", 'start': 4221.452, 'duration': 2.922}, {'end': 4231.097, 'text': 'click Next, create there, that is, jump over here to the header file and then instead of that, this is gonna be called protected.', 'start': 4224.374, 'duration': 6.723}, {'end': 4232.697, 'text': "let's define our method.", 'start': 4231.097, 'duration': 1.6}, {'end': 4238.901, 'text': "we want to create here void and then let's call it get exam results, something that would be maybe private.", 'start': 4232.697, 'duration': 6.204}, {'end': 4241.142, 'text': "i'm able to jump down here and implement that.", 'start': 4238.901, 'duration': 2.241}, {'end': 4244.604, 'text': "get exam results, nslog, and we'll just put something.", 'start': 4241.142, 'duration': 3.462}, {'end': 4247.065, 'text': "exam is fine, doesn't matter.", 'start': 4244.604, 'duration': 2.461}, {'end': 4254.849, 'text': "now what we can do is jump back over into animal implementation area right here and then let's say something like in the git info area.", 'start': 4247.065, 'duration': 7.784}, {'end': 4260.232, 'text': 'if we wanted to specifically call that, we could just very easily come in here and go self get exam results,', 'start': 4254.849, 'duration': 5.383}, {'end': 4266.578, 'text': "of course we have to come in here and import this, there's that animal, that, and then get exam results.", 'start': 4260.232, 'duration': 6.346}], 'summary': 'Herbie received shots, and access is restricted to subclass.', 'duration': 103.234, 'max_score': 4163.344, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g4163344.jpg'}, {'end': 4403.779, 'src': 'heatmap', 'start': 4304.434, 'weight': 0.78, 'content': [{'end': 4307.716, 'text': "And you can see it doesn't have any animal class or any other reference to a class.", 'start': 4304.434, 'duration': 3.282}, {'end': 4308.697, 'text': 'Click on Create.', 'start': 4308.037, 'duration': 0.66}, {'end': 4314.231, 'text': 'And here is beauty contest, which is going to have just the header file part of it.', 'start': 4309.028, 'duration': 5.203}, {'end': 4321.375, 'text': "And here we're just going to define the methods and then stick them in any place that we feel like putting them.", 'start': 4314.491, 'duration': 6.884}, {'end': 4326.118, 'text': 'And I, like I said, I already started doing this with the koala perform trick.', 'start': 4321.555, 'duration': 4.563}, {'end': 4326.718, 'text': 'There it is.', 'start': 4326.258, 'duration': 0.46}, {'end': 4332.382, 'text': "So generated that jump over into the koala and you can see, I didn't need to define it right here.", 'start': 4327.199, 'duration': 5.183}, {'end': 4335.244, 'text': 'I just needed to come in and define that.', 'start': 4332.402, 'duration': 2.842}, {'end': 4336.004, 'text': 'I want it right here.', 'start': 4335.284, 'duration': 0.72}, {'end': 4337.018, 'text': 'Beauty contest.', 'start': 4336.257, 'duration': 0.761}, {'end': 4337.818, 'text': 'There it is.', 'start': 4337.338, 'duration': 0.48}, {'end': 4345.404, 'text': 'And now I can jump directly down into the implementation and define perform trick and look cute or whatever I wanted to put inside of that.', 'start': 4338.119, 'duration': 7.285}, {'end': 4347.726, 'text': "So let's come in here and go look cute.", 'start': 4345.504, 'duration': 2.222}, {'end': 4348.687, 'text': "There's void.", 'start': 4347.926, 'duration': 0.761}, {'end': 4349.488, 'text': 'Look cute.', 'start': 4348.707, 'duration': 0.781}, {'end': 4351.89, 'text': "And we'll say Herbie acts super cute.", 'start': 4349.908, 'duration': 1.982}, {'end': 4354.171, 'text': "Or at least that's the way it works because his name's Herbie.", 'start': 4351.97, 'duration': 2.201}, {'end': 4355.593, 'text': 'Self and name.', 'start': 4354.432, 'duration': 1.161}, {'end': 4358.515, 'text': "And that's in the Koala implementation file.", 'start': 4355.873, 'duration': 2.642}, {'end': 4361.878, 'text': 'And if we jump back into main, we can see that we can just go like this.', 'start': 4358.735, 'duration': 3.143}, {'end': 4363.639, 'text': 'Herbie, look cute.', 'start': 4362.458, 'duration': 1.181}, {'end': 4364.86, 'text': "And that's going to call that.", 'start': 4363.819, 'duration': 1.041}, {'end': 4365.761, 'text': 'And then Herbie.', 'start': 4365.14, 'duration': 0.621}, {'end': 4373.328, 'text': "form trick and then to implement that, you're just going to have to go over into your header section right here and add that in as well.", 'start': 4366.42, 'duration': 6.908}, {'end': 4380.617, 'text': 'so beauty contest like this close that off file, save that, jump over into main, execute it, and there he is.', 'start': 4373.328, 'duration': 7.289}, {'end': 4381.738, 'text': 'herbie acts super cute.', 'start': 4380.617, 'duration': 1.121}, {'end': 4383.1, 'text': 'herbie performs a handstand.', 'start': 4381.738, 'duration': 1.362}, {'end': 4385.383, 'text': 'really easy to just slide those methods in right there.', 'start': 4383.1, 'duration': 2.283}, {'end': 4391.683, 'text': "Now, to make sure I cover just about everything, I'm going to go over a block or an anonymous function in Objective-C.", 'start': 4385.595, 'duration': 6.088}, {'end': 4395.428, 'text': 'How you would create one of those is you would define whatever your type is going to be.', 'start': 4391.943, 'duration': 3.485}, {'end': 4396.429, 'text': "We're going to say at.", 'start': 4395.728, 'duration': 0.701}, {'end': 4400.234, 'text': 'Say I want to create an anonymous function called getArea.', 'start': 4396.449, 'duration': 3.785}, {'end': 4403.779, 'text': "Then we're going to define exactly what is passed into it.", 'start': 4400.575, 'duration': 3.204}], 'summary': 'Demonstration of adding methods to a class with practical examples and explanation.', 'duration': 99.345, 'max_score': 4304.434, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g4304434.jpg'}, {'end': 4574.221, 'src': 'embed', 'start': 4541.777, 'weight': 0, 'content': [{'end': 4544.698, 'text': "And let's call this, this is going to be a coca class.", 'start': 4541.777, 'duration': 2.921}, {'end': 4546.839, 'text': "Next Let's call this dog.", 'start': 4545.138, 'duration': 1.701}, {'end': 4549.66, 'text': 'Again, subclass of animal, Objective C.', 'start': 4547.339, 'duration': 2.321}, {'end': 4550.4, 'text': 'Click on Next.', 'start': 4549.66, 'duration': 0.74}, {'end': 4551.401, 'text': 'Yes, create it.', 'start': 4550.641, 'duration': 0.76}, {'end': 4554.444, 'text': 'and then inside of the dog file.', 'start': 4551.821, 'duration': 2.623}, {'end': 4556.145, 'text': 'well, I want to jump over into the header section.', 'start': 4554.444, 'duration': 1.701}, {'end': 4558.507, 'text': "first, inside of this we're going to.", 'start': 4556.145, 'duration': 2.362}, {'end': 4560.108, 'text': "well, actually I don't have to do anything.", 'start': 4558.507, 'duration': 1.601}, {'end': 4563.772, 'text': 'it automatically is going to get the make sound method, of course.', 'start': 4560.108, 'duration': 3.664}, {'end': 4568.376, 'text': "however, I'm going to override it and I'm going to say void, make sound.", 'start': 4563.772, 'duration': 4.604}, {'end': 4574.221, 'text': "this is in the implementation file, of course, and it's log, and here I'm going to say something different.", 'start': 4568.376, 'duration': 5.845}], 'summary': "Creating a subclass 'dog' of 'animal' in objective c, overriding the 'make sound' method in the implementation file.", 'duration': 32.444, 'max_score': 4541.777, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g4541777.jpg'}], 'start': 3651.105, 'title': 'Object-oriented programming in objective-c, custom animal objects & subclassing, and objective-c file management and functionality', 'summary': 'Demonstrates object creation, method invocation, and accessing instance variables in objective-c, discusses inheritance and subclassing to create a koala class, and covers file management, categories, protocols, and dynamic binding in objective-c.', 'chapters': [{'end': 3818.379, 'start': 3651.105, 'title': 'Object-oriented programming in objective-c', 'summary': 'Demonstrates object creation and method invocation in objective-c, including creating and initializing objects, calling methods, and accessing instance variables using getters and setters.', 'duration': 167.274, 'highlights': ['The chapter explains creating and initializing objects in Objective-C, including allocating memory and calling the init method, with examples of creating dog and cat objects.', 'It also demonstrates method invocation using dot notation and getter methods to access instance variables, such as getting and setting the name of the animal objects.', "The chapter covers the use of custom initialization methods, such as init with name, to provide specific values during object creation, as shown with the creation of a cat object with the name 'whiskers'."]}, {'end': 4075.29, 'start': 3818.379, 'title': 'Custom animal objects & subclassing', 'summary': 'Discusses creating and calling custom methods, demonstrating inheritance and subclassing to create a koala class which inherits from the animal class, overriding methods, and creating custom methods for the koala class.', 'duration': 256.911, 'highlights': ['Creating and calling custom methods The speaker demonstrates creating and calling custom methods with different attributes and return values, showcasing the versatility of custom animal objects.', 'Inheritance and subclassing to create Koala class The chapter explains the process of creating a koala class that inherits all attributes and methods from the animal class, utilizing Objective-C for implementation.', "Overriding methods in the Koala class The speaker shows the process of overriding methods in the Koala class, with an example of the 'talk to me' method being overridden to display a customized output using the koala's name.", "Creating custom methods for the Koala class The chapter demonstrates the creation of custom methods specifically for the Koala class, such as 'form trick' and 'make sound', to showcase the ability to create unique functionality for subclasses."]}, {'end': 4680.579, 'start': 4075.703, 'title': 'Objective-c file management and functionality', 'summary': 'Covers various aspects of objective-c file management, including creating categories for splitting classes, adding methods at runtime, importing categories, and utilizing protocols and dynamic binding, along with examples and demonstrations.', 'duration': 604.876, 'highlights': ['Categories allow splitting classes into manageable files and adding methods at runtime.', 'Protocols provide a way to define properties and methods for any class to implement.', 'Creating blocks in Objective-C enables the creation of anonymous functions with specified parameters and return values.', 'Enums are used to define custom variables with a set of constants, providing a way to assign values and utilize them.', 'Dynamic binding allows creating subclasses that share a superclass type, demonstrating polymorphism through examples and demonstrations.']}], 'duration': 1029.474, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/5esQqZIJ83g/pics/5esQqZIJ83g3651105.jpg', 'highlights': ['Demonstrates object creation, method invocation, and accessing instance variables in Objective-C, including custom initialization methods.', 'Inheritance and subclassing to create a Koala class, with examples of method overriding and creating custom methods for the subclass.', 'Covers file management, categories, protocols, dynamic binding, and other advanced features in Objective-C.']}], 'highlights': ['The tutorial covers everything about Objective-C and also teaches a lot about programming in C, as they are quite similar.', 'The tutorial demonstrates the compatibility of Objective-C with different platforms, including Macintosh Linux and Windows.', 'The tutorial emphasizes the usage of Xcode and command line for writing and executing code, demonstrated through the process of creating an Objective-C project in Xcode.', 'C programming variables and data types including short, long, float, double, characters, structs, and pointers', 'Demonstrates creating and manipulating variables for temperature conversion', 'Demonstration of logical operators such as AND, OR, and NOT, and their application in combining comparison operations to perform specific actions.', 'Covers looping with for loops, if statements, break and continue keywords, while loops, do while loops, and functions for code reusability.', 'Covers string manipulation in Objective-C, including dynamic string creation, comparison, conversion, and manipulation techniques.', 'Explains the difference between NSString and NSMutableString, clarifying the concept of immutable objects and introducing NSMutableString for changeable strings.', 'The chapter covers creating custom objects in Cocoa, emphasizing the declaration of attributes, creation of methods, and object initialization.', 'Demonstrates object creation, method invocation, and accessing instance variables in Objective-C, including custom initialization methods.', 'Inheritance and subclassing to create a Koala class, with examples of method overriding and creating custom methods for the subclass.']}