For objective c on osx generally "private" means: we didn't put it in the header file, but you can obviously dump out that information and glean what functions do what.
Then because objective c function calls are just message passing, you can send that off.
It is no real different than C in this regard, private means just that it isn't publicly exported. It also generally means it could go away or change with an os update. So they tend to break often as they're generally ending up as public apis that apple doesn't yet want to commit to.
To block things from using the api means you would be checking every call site invocation. Not really possible with the message passing style of objective c.
Even if it is running as a user you would have to do something like:
function () {
if !allowed_uid()
dunno segfault
else
ok cool do things
}
That whole process would use up needless energy or ram which on a mobile why bother, just tell people to stop using private apis and kick them out if they do.
Then because objective c function calls are just message passing, you can send that off.
It is no real different than C in this regard, private means just that it isn't publicly exported. It also generally means it could go away or change with an os update. So they tend to break often as they're generally ending up as public apis that apple doesn't yet want to commit to.
To block things from using the api means you would be checking every call site invocation. Not really possible with the message passing style of objective c.
Even if it is running as a user you would have to do something like: function () { if !allowed_uid() dunno segfault else ok cool do things }
That whole process would use up needless energy or ram which on a mobile why bother, just tell people to stop using private apis and kick them out if they do.