Tweaking parameters at runtime? [duplicate] - ios

This question already has answers here:
How to change variables value while debugging with LLDB in Xcode?
(4 answers)
Closed 9 years ago.
When working with iOS, I sometimes have values I need to test with. I may adjust these values 30 times, and have to rebuild/rerun 30 times to test them. This is an obvious hassle.
So I was wondering (using the iOS SDK) if it was possible to tweak small parameters/data at the app's runtime? Just to make life convenient.

Set a BreakPoint
In lldb debug area type:
Example 1:
expr (void)[aView setBackgroundColor:(UIColor*)[UIColor redColor]]
Here, aView is an UIView for which I want to see its frame at runtime. I am calling the setBackgroundColor method of an UIView at runtime. Any method could be called like that.
Example 2:
expr nsstringVariable = #"yourRunTimeValue"
Here, I am changing a string variable at run time.
For more help on expr type
help expr
I highly recommend people to read this tutorial by Brian Moakley Intermediate Debugging with Xcode 4.5

Yes, with Injection for Xcode:
Using Injection it is possible to make a change to the implementation
of an Objective-C class and have it take effect as soon as the class
is saved without having to restart the application. This feature works
for OS X and iOS applications in the simulator and on iOS devices.

Related

What's the difference between iOS 12 and iOS 13 when it comes to including emoji via its code point

Before we start, I'd like to clarify...
This question isn't about how to include emoji on labels. I'm aware that has been asked and answered before. I am able to get the emoji on the label just fine.
This question isn't about whether we can/should include emoji on labels. I am aware of the issues around that too. We'll discuss as a team whether we want to proceed with emoji, but it doesn't make me any less curious about the issue below.
With the disclaimers out of the way, our situation is as follows: We have an iOS app that deploys back to iOS 12. In it, we'd like to include the warning sign on a UILabel to signal certain situations. The text of the label comes from this bit of code (including picture, because pasting emoji doesn't come through):
This line isn't setting someLabel.text directly but it's the relevant bit. I can promise you that surrounding code simply prepends this snippet to other text and slaps it onto a label.
The first character of that literal string at the end of the line is the "warning sign" emoji inserted into the source code via hitting Ctrl+Cmd+Space and choosing it from the resulting picker. Then we have the unicode code point \u26A0.
I get the following when this code runs:
At this point I'm really curious about...
What changed between iOS 12.4 and 13.7 such that the same source code produces different output? Was the different treatment of unicode code points announced somewhere on some release notes?
Is one side somehow "more correct"? Does the "yellow-triangle-with-black-exclamation-in-it" symbol and \u26A0 technically represent different things, iOS 12 mistakenly visualized them as the same, and iOS 13 fixed that issue? Or vice versa; they are actually meant to represent the same thing, iOS 12 did so, and iOS 13 broke something? Or does the concept of correctness not even apply, since they are different representations?
Is there any code point I can type into my source file (e.g. \u<something>) that will render as the yellow-triangle-with-black-exclamation-in-it emoji consistently on iOS 12 and later? If so, what is it? If not, is using the actual emoji in my source code the only way to achieve this?
There are two variants, 26a0fe0f and 26a0fe0e. The former is the emoji variant; the latter is the text variant. In iOS 13 you are using both of them. I don't know why it chooses the second one as a fallback in iOS 13 but the first one as a fallback in iOS 12; the iOS 13 behavior seems more correct to me.
I think I figured it out, but leaving question and answer up in case it helps others.
The crux of the issue is that the "yellow-triangle-with-black-exclamation-in-it" symbol and the "black-bordered-triangle-with-black-exclamation" symbols are not the same entity. We see these in the character viewer built into macOS:
And sure enough, the representation \u26A0\uFE0F renders as "yellow-triangle-with-black-exclamation-in-it" on both iOS versions:
If \u26A0 wasn't supposed to be the "yellow-triangle-with-black-exclamation-in-it" emoji, I still can't explain why it renders as such on iOS 12...
Credit actually belongs to user matt. He had a comment which hinted at these being different, which led me down this path. The comment is no longer there for some reason (got deleted?) so I don't know how to properly attribute.

Auto fix implement of missing method of protocol with Xcode?

I am not very familiar with Xcode,
Since I think every decent IDE should have a shortcut for auto-fix a template of implemented protocol (such as interface in java) to save some effects of the programmers to just fill in the logic and don't have to type in the method name and parameter stuff.
Such as when we meet this:
And I googled around and some guy said that there should be a fix all in scope thing in the Editor, but seems I can't make that clickable :-(
So, how to do this with xcode? Thanks.
Unfortunately Xcode is fairly behind compared to other IDE's in features for refactoring and such.
The main Xcode version: 8.x, can't do what you wish for. But some of it will be/is available in beta Xcode 9
Xcode may suggest a fix for a compiler error. You can click the errors individually to see the suggested fix(es) and select one.
Alternatively the 'Fix All In Scope' allows you to tell Xcode to select suggested fixes of the current file.

What does this symbol mean on Xcode [duplicate]

This question already has an answer here:
Xcode issue navigator : What two arrows blue icon mean?
(1 answer)
Closed 6 years ago.
Suddenly, I am seeing something very strange on my Xcode.
I realize that is a static analyzer to help me know where memory leaks can happen but I want to know now how to get rid of this and without changing my code. I mean., what configuration, I can change in xCode to remove that symbol as it wasn't there just minutes ago.
It means you have 72 "static analyzer warnings". The Xcode static analyzer parses your source code and tries to find things that you wouldn't want to happen at runtime (for example never releasing some object to reclaim its memory).
You can find a lot more about it here.

Xcode 6-Beta keeps crashing with a SourceKitService Terminated Editor functionality temporarily limited error [duplicate]

This question already has answers here:
SourceKitService Terminated
(34 answers)
Closed 8 years ago.
I have seen other questions with a similar problem but mine looks a bit more serious. Xcode keeps crashing on me. I have no chance to even edit a single character in my code. It is a very simple playground file with some basic code, nothing fancy. I'm not able to do anything at all in the current state.
When Xcode crashes, I hit reopen and the same thing happens again.
Locate the playground file using the Finder, then right click and select 'Show Package Content'. Next select the swift file, right click and open it using your favorite text editor (which must not be Xcode :)).
Once there, either delete its content or surround your code with comments. In the latter case, you can reopen the playground file in Xcode and selectively uncomment code line by line to know which line(s) cause Xcode to crash.
I've verified that there some recurrent patterns in code that almost always makes Xcode to crash, for example, when I use 2 or more custom operators in the same statement. I don't know if it that happens for all custom operators, or it's my specific implementation - either case, I know that I have to avoid that combination. You should take note when you notice a particular combination of code regularly making Xcode crash, and try to avoid it by splitting into multiply lines when possible.
Here's what I did to resolve it. I did reinstall Xcode a couple of times. It looks stable now but I'm not sure till when it would remain so. Looks like a bug to me. I will file it with Apple

IOS arc disabling for part of code [duplicate]

This question already has answers here:
How can I disable ARC for a single file in a project?
(18 answers)
Closed 9 years ago.
I'm a newbie to IOS technology. I have been developing an app, in which I have to add around 10,000 mkannotations to my map. So I prefer to use clustering algorithm (probably using k_means). However, I found this beautiful external library at (https://www.cocoacontrols.com/controls/adclustermapview)
When I complied the example framework of this project and ran it on simulator everything works fine, however, when I add the required files to my project as they described, it raises a lots of errors regarding
retain
release etc.
So I understand there is some issue with the arc compatibility in the project
Here are my questions
These retain, release methods being used in some project, does
that mean that they are developed with old versions of IOS?
If so, how do I resolve these error, other than manually removing them?
Is there a method in IOS, which allows me to compile a code
partially using one compiler and the remaining using other?
Select desired files at Target/Build Phases/Compile Sources in Xcode
PRESS ENTER
Type -fno-objc-arc
Press Enter or Done
In xcode Edit-Refactor-Convert to Objective-C ARC select your app then check button.Finally click save button.
These retain, release methods being used in some project, does that
mean that they are developed with old versions of IOS? NO
If so, how do I resolve these error, other than manually removing
them?
Is there a method in IOS, which allows me to compile a code
partially using one compiler and the remaining using other? You can disable ARC for some files.
This problem might be coming because you must be using ARC in your project while this framework is not. To remove ARC for particular classes go to Targets, then build phases tab, under the compile sources group add '-fno-objc-arc' as the compiler flag. This will make sure that ARC is skipped while compiling this class..

Resources