Skip to content

Instantly share code, notes, and snippets.

Avatar
🎯
Focusing

Engineer Sheldon Wang SheldonWangRJT

🎯
Focusing
View GitHub Profile
View A little thing about Xcode LLVM C++ Settings
#iOSBySheldon
Apple LLVM 9.0 - Language - C++ Settings
This is an option setting under a Target - Build Settings tab. The idea is to let Xcode (LLVM) to be able to handle C++ functions, if you are using any static framework that is written in C++.
This is two items that need to be selected(it may be defaulting different values by different Xcode version):
C++ Language Dialect: GNU++14 [-std=gnu++14]
C++ Standard Library: libc++ (LLVM c++ standard library with C++11 support)
14 indicates this version came out in 2014 [1], if you have to use older version, 11 is in the droplist. If you need 98 you can still run some script to achieve it. [2]
View Something About NSUserDefaults.txt
Something About NSUserDefaults
#iOSBySheldon
As an iOS developer, you must have heard NSUserDefaults, because, it is one of the easiest way to store something locally in users device. Even you have known it, this quick post may still help you know some details. [1]
1. NSUserDefaults is just a plist file.
Although Apple has built the interface to use it, the core of NSUserDefaults is just a plist file. The interface is pretty straight forward
UserDefaults.standard.set(<#T##value: Any?##Any?#>, forKey: <#T##String#>)
View Git Cancel Commit Before Push.txt
Git Cancel Commit Before Push
#iOSBySheldon
Sometimes, we have committed something and then we regret and don't want to push it anymore. In case of this, we can discard our commit, which is better done in terminal, I mean, SourceTree is limited sometime.
There are multiple ways to do this, you can rebase, you can reset, today, I will use reset.
1. Soft reset
$ git reset --soft HEAD^
@SheldonWangRJT
SheldonWangRJT / iOS - What does SiriKit do? How to use it in our app?
Created Mar 18, 2018
iOS - What does SiriKit do? How to use it in our app?
View iOS - What does SiriKit do? How to use it in our app?
#iOSBySheldon
As Siri became more and more popular, people won't be satisfied to only use Siri in the iOS system level, instead, it will be much better if we can use Siri with apps that are not only from Apple. In WWDC 2016, Apple finally opened SiriKit to the developers. Time flies, it is almost two years past. I do believe in this year's WWDC 2018, Apple will give a big enhancement on the SiriKit. One of the bigger reason might be the release of the HomePod.
In this post, I don't want to show you any code, but I do want to explain to you guys what does SiriKit do and the basics of SiriKit.Same as Alex for Amazon and "OK Google", SiriKit uses a technique called Natural Language Processing.
If you check the link from WikiPedia, you will be find the following definition:"Natural-language processing (NLP) is an area of computer science and artificial intelligence concerned with the interactions between computers and human (natural) languages, in particular how to program computers to fruitfully process larg
@SheldonWangRJT
SheldonWangRJT / Git - How to Rebase and Squash Commits
Created Mar 24, 2018
Git - How to Rebase and Squash Commits
View Git - How to Rebase and Squash Commits
Git - Rebase and Squashing
#iOSBySheldon
It is pretty often that you notice your feature branch has way too many commits right be fore you merge to the Master branch.
If you see your git history of your branch, it might be like:
History:
Commit xxxx1 "modified 2 more tests"
Commit xxxx2 "updated first test"
@SheldonWangRJT
SheldonWangRJT / Keychain - local items alert
Created Mar 24, 2018
How to solve mac app wants to use the "Local Items" keychain endlessly
View Keychain - local items alert
#iOSBySheldon
Sometimes due to Mac system error, you are seeing this alert a lot. This alert could be shown repleatedly and annoyingly.
--------------------------------------------------
| xxx wants to use the "Local Items" keychain. |
| Please enter the keychain password. |
| Password: ________________________ |
--------------------------------------------------
We can clean our KeyChain "Local Items" using Terminal to solve this issue.
View iOS Most Useful Debug Tricks
1. objc_exception_throw
When breakpoint auto landed on the assembly page, try to type
(lldb) po $arg1
(lldb) po [$arg1 name]
(lldb) po [$arg1 reason]
This may bring extra info, like "xxx is nil"
[1.1] https://stackoverflow.com/questions/3327828/xcode-lldb-how-to-get-information-about-an-exception-that-was-just-thrown
[1.2] https://www.natashatherobot.com/xcode-debugging-trick/
2. Double click break point to set break conditions & additional actions
@SheldonWangRJT
SheldonWangRJT / WWDC18-412-Notes-Sheldon.md
Last active Jul 12, 2018
WWDC18 Notes by Sheldon - Session 412 - iOS Advanced Debugging with LLDB
View WWDC18-412-Notes-Sheldon.md

WWDC18 Notes - Session 412 - Advanced Debugging with Xcode and LLDB

All session list link: Here
Session Link: Here
Download session slides: Here

This notes is written by Sheldon after watching WWDC18 session 412. You can find me with #iOSBySheldon in Github, Youtube, Facebook, etc.

Quick Tab for Breakpoint

@SheldonWangRJT
SheldonWangRJT / WWDC18-234-Notes-Sheldon.md
Last active Jul 12, 2018
WWDC18 Notes by Sheldon - Session 234 - Safari and WebKit
View WWDC18-234-Notes-Sheldon.md

WWDC18 Notes - Session 234 - Safari and WebKit

All session list link: Here
Session Link: Here
Download session slides: Here
More about AR file .usdz is Here

This notes is written by Sheldon after watching WWDC18 session 234. You can find me with #iOSBySheldon in Github, Youtube, Facebook, etc.

View iOS CPU and GPU basics.md

iOS CPU and GPU basics

#iOSBySheldon #CPU #GPU #60FPS #CADisplayLink

Apple always encourage us as iOS developers to try to maintain our apps running with a 60 frames per second rate (60 FPS) to make sure the best user experience. Most of the time, this comes for free because the hardwares are getting better and better.

But in some cases you may need to dig deeper if your app as a significant frame drops to fix it for the users, which leads to my post today - the basic of CPU and GPU in iOS. Whenever I encounter this kind of question, I always want to find the answer directly from Apple’s official document. I was able to find this article here. I mean this article is written mainly for #Metal and iOS game developers but I found all the info that we need. As always, I will try to summarize the best part of the article.