IBOutlet refers to Interface Builder, (I.nterface B.uilder Outlet). All the IBOutlet is there for is as a directive to Interface Builder so the user can make the connections to an item on the screen. It has nothing to do with your source code.
A program will still compile and run without accessors created (as long as you never call them) and you can easily write around the lack of accessors:
// various other interface and class definition stuff goes here
Now, without the @property declarations, xCode assumes that someIntegerUsedForSomething defaults to “atomic assign”, so unless you want them to be different than that, I think you can leave the @property statement out.
If, in someclass.m you @synthesize someIntegerUsedForSomethung, xCode creates the setSomeIntegerUsedForSomething and someIntegerUsedForSomething methods (unless you tell it to name them differently) however you don’t have to. Consider the code below, assuming I didn’t synthesize the variable in someClass.m
// appDelegate.m file
someClass myObject = [[someClass alloc] init];
/* The following line is equivalent to [myObject setSomeIntegerUsedForSomething:72];
but given we didn't synthesize the accessors, we have to do it this way: /*
myObject.someIntegerUsedForSomething = 72;
(If I need to be corrected by an author because I’ve messed something up, please do so as I am still learning as well.)