Swift

Apple's new place of OC for a high-level programming language!

Pocketed input method is how to share anti-piracy accounts on iOS

For iOS developers,The face of app piracy,The biggest problem is not a technical break,Instead, more and more sharing of pirated Apple ID,Some people might say that piracy is equivalent to a "trial" of the,Like people will naturally go into positive ...... but in fact,Because of penny share account of piracy,Led to numerous independent developers and ultimately to the vote resume。

In short,last year,Surge author[……]

Click link to continue reading...

In NSView 10.12 Detailed problem does not show shadow

On iOS,If we want to display a shadow View,So basically do:

but,To the macOS,This would not work - no effect。

The answer lies in the macOS a View If you want to use [crayon-693a2df[……]

Click link to continue reading...

macOS keyboard event intercepted three ways

Under normal circumstances,You do not need to know the contents。

In rare cases,Your app might need to get the user presses the button information,such asThe ones released Develop a Input Method。Only then can you provide candidates to the user。

How to create an input method under macOS,I'm hereSwift uses InputMethodKit to write an input methodThis article has detailed instructions,Here skip[……]

Click link to continue reading...

Analyzing a multi-monitor window position macOS

When developing pocketed input method,I met such a thing,That is, as a candidate bar window will go beyond the screen when the edge of the screen! and so,In the display window when I do extra check the coordinates:

In short,That is, if you count the coordinates of their width exceeds the width of the screen,Norway put it back。

but,Such[……]

Click link to continue reading...

How to make NSWindow displayed in a different Space or the Screen

Among write off the grid input method the Mac version of the process,I encountered such a problem,Article candidate system API disrepair,Many API functions exists but is essentially useless,such as:

This method is used to set the style of a candidate bar,In addition to the default inside[crayon-693a2df98c6db9522[……]

Click link to continue reading...

URL encounter Chinese characters could not be initialized

In the Swift,We often used to initialize a URL path,For example, links to web pages。For example, this:

When the user clicks the button (for example, the Help button),Then all of a sudden will help the user to open the default browser,And opens the specified page (here's a forum)。

Then,If this is your link[……]

Click link to continue reading...

How pocketed the key input is to achieve sound

All to known,Input method does not need to get off the grid. "Full access”,So according to Apple's rights,Naturally, you can not play the key tone。

but,Recent pocketed updated input method added this feature - you can even join in later versionsKey shockIt's。However, I stillNo needGet "full access"。

Then,How I do it?

iOS in the sound and vibration

In fact, the same thing[……]

Click link to continue reading...

UITableViewCell highly dynamic configuration

UITableViewController Is quite a common space in the iOS development,It's very early cell can support highly adaptive,Or is highly dynamic。In development,If the cell in the complex layout of content - such as a micro-blog even drawing with the word。Well, this time automated highly dynamic becomes very useful - you do not have to calculate the total[……]

Click link to continue reading...

Xcode automatic version

Make sure developers have had such trouble:Version submitted wrong!

Version of the compiler and testing more,When the inevitable submitted only to find the wrong version number。Or is the background version number is correct,Reception forget to change the version number。In fact,Allows reception automatically obtain the version number of the background data,For example, this:

But

Background version number[……]

Click link to continue reading...

A stack automatically sorted Swift

a year ago,I'm here git onReleased aSwift used to achieve stack,There are two versions。Because Swift itself does not achieve this thing - even though the official part of the tutorial is to use genericsThe StackExamples cited。

Perhaps people think this is too simple, right

In short,This time I play this thing,Because the HMM Viterbi algorithm needs to be done to trim,Otherwise, too many unnecessary path[……]

Click link to continue reading...

Swift is determined whether there is a string expression Emoji

Update:The network spread emoji Code pointNot complete,I follow Wikipedia-refresh a bit,The paper version of the code was updated Swift。

Many times we need to determine a character、Or that there is not a word that contains the emoji,Use Swift language development app is no exception,For example, you can use a regular expression - but unfortunately,It seems different languages[……]

Click link to continue reading...

Pocketed input method is how to achieve app settings without the need for full access?

All to known,On iOS since 8.0 Start version,Keyboard can be developed for iOS third-party input method,These keyboards can be sold on the AppStore,but,But also has a very strict access rules。

This,Apple's third-party keyboard design of the two permissions,A minimum of,Permissions Only the most basic functions of the keyboard、Another relatively more,Get the keyboard "Finish[……]

Click link to continue reading...

Could not load the “” image referenced from a nib in the bundle with identifier “com.xxx.xxx”

Today, I encountered a strange problem,Program runs no problem at all but the terminal given as follows

In fact, it is wrong on the subject,This question seems quite simple - not that the pictures referenced lost it ......

actually not,Since the name is ""

Click link to continue reading...

CloudKit Optimization Guide

Recently added to the input method pocketed called "Logarithmic Cloud"s things,It is not difficult,Simpler than using iCloud Document,But not too much information online,You started by those tutorials to real life should not be a problem,But want to enhance the user experience,It is not so easy。Here we take a look at,How to get CloudKit run more fun。

CKDatabaseOp[……]

Click link to continue reading...

Swift in the use cmph

cmph It stands for C Minimal Perfect Hashing Library ,It is a very well-known, written in C minimal perfect hash library,What is a perfect hash?

Perfect hashing

Here we do not speak principle,You just need to know that the traditional hash conflict,We need to rely on a variety of algorithms to deal with conflict can be,For hash,Always need a table,This table reserved many locations[……]

Click link to continue reading...

A quick look at the string

Most of the time,We need to look at many strings,To determine the specific content filtering out。For example, through the input method which pocketed,We need to use auxiliary code word to filter out candidates need。

In General,Find and Compare certainly figures to fastest,However, in the lexicon we can not put all the words are converted to digital (although theoretically feasible ......) search on the string,We realize there are many ways to,Here, I say my own ideas[……]

Click link to continue reading...

Based on Dynamic Programming sentence input method

In General,We will not call it on the issue of dynamic programming algorithm is "Dynamic Programming”,But called "Hidden Markov Models”,but,If we simply use the dynamic programming algorithm to solve a common directed acyclic graph,Then it can only be said to be dynamic planning ......

This time we want for the,It is based on the sentence input method thesaurus。The hidden Markov model is not based on the state transition Solution。

Thesaurus

Since no mold[……]

Click link to continue reading...