dictionaryHasDefinitionForTerm issues in xcode 4.5 - iphone

fourLetterWord = #"isdjfiodjof";
if ([UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:fourLetterWord]) {
self.display.text = fourLetterWord;
return;
}
else
fourLetterWord = #"";
This string is getting accepted. I do not know what I am doing wrong here, but before 4.5 this worked fine. Is this an issue with xcode 4.5, or is there something wrong with my code?

I just had the same issue and start working around it.[UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:fourLetterWord]) method doensn't work in the simulator for some reasons, Apple need to fix it.
BUT if you TEST YOUR APP IN THE DEVICE [UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:fourLetterWord]) method runs and gives you the right result.
it's kinda slow though.
hope helps.

dictionaryHasDefinitionForTerm: always returns YES if no dictionary has been downloaded yet (because if there is no dictionary, it can't know whether the word is in it).
The download is automatically offered when you actually show a dictionary popover in any app. I think the download-on-demand feature was introduced in iOS 6, along with dictionaries in languages other than English.

My experience is that this works fine on my iPad running iOS 5.1.1 but returns TRUE every time on my iPod running iOS 6.1.3. I've logged it as a bug with Apple.
Update: omz is right. Once I had downloaded Apple's dictionary onto my iOS6 iPod then it validates the word correctly. It was so long ago that I installed iOS5 on my iPad I had no memory of whether I'd installed it manually or if it was done for me. Regardless, it requires a manual install on iOS6 for this method to be of use.

Related

Appcelerator Live View Console.Log not working

Odd one this. Ever since upgrading to iOS10 and the latest Appcelerator SDK (5.5.0), I can't get even a simple console.log("hi!") to show anything in the console when I'm testing on an iPhone 6s Plus connected to my Mac via USB, using LiveView.
I've tried changing it to Ti.API.info("hi!") - which I believe is the old way to do it - to no avail. If I change it to alert("hi!"), that works fine. However, it's not as useful as console.log used to be when developing things which MUST be tested on a connected device (the camera, in my case).
I've Googled this, plus done extensive searching on StackOverflow.
It may be that this is so new that no-one has noticed yet.
Can anyone help?
It's a known issue. Apple changed something with the way they log data. The Appcelerator SDK has to be adapted to this changes. I'm pretty sure they'll fix it asap. You'll have to await an update.
Greetings
Edit: Here is the corresponding jira ticket (https://jira.appcelerator.org/browse/TIMOB-23786)

iOS app does not respond to some clicks when downloaded from AppStore but works fine in Debug mode

I've made an app (called BeSharp), tested it a lot, uploaded it to Apple AppStore, and now all users report that the pop-up menu I use (custom one) does not respond to clicks.
It does not crash, so I don't understand how to get some debugging done.
So, the question:
How can I debug release version?
Thanks in advance.
P.S. Please find below some promo-codes if you wish to test an app yourself:
FAYNW9XTTMPY
LYK7EYJYJM4E
T6FW34E4TL6J
NJ99R4E39WEW
PJ473MERJKTH
MK4EMXE9XFFW
LN7AFXHJN9YK
MTTKW4PMXPFP
KK9HE74MKFJL
X6PWPHERHMLF
E7P96NNNAAN6
N93FFTPPA366
T9JX6PMN9ELT
JP39XKTT4J6N
Y3Y4R643E6F3
33HWLF4PFJPA
7XYW7NAH7A63
JNP4EYJHKLN6
46KPNPYFYALJ
Thanks everybody for comments.
I solved the issue.
After inserting some NSLog into code, and running release version on real device, I have pinpointed the issue, and it was in custom button component - in 6.1 some Alpha test function works incorrectly.
So I just updated it and everything worked fine.

Pound sign in UILabel mysteriously encoded as HTML entity

In my iPhone app, the application receives its data from a server in XML format and displays it in UILabel. The data coming from the server may contain £ sign. This sign is not encoded in any way - just passed as is in the XML string. The app takes this string and displays it in a UILabel.
This works just fine most of the times. It always works fine in a simulator, including iOS 5.1, however one of the users reported a bug indicating that instead of display the £, the UILabel actually shows £ - which is most bizzare.
The UILabel text is set with this simple line of code:
contentLabel.text = [node getValueForKey:keyName];
I have stepped through the code with debugger and can see that the correct string value is being passed and set. I can also see correct results on the simulator.
However (as can be seen from the image below) something going amiss on this user's phone. Is there something I am missing? What could be the problem here? And, more importantly, how can I solve this? The things are complicated by the fact that everything works fine on my phone and simulator and this user is across the country from me, so I can't get physical access to their phone.
Here's the screenshot from the simulator:
And here's the screenshot from the affected user's phone:
What library are you using to parse the XML?
Try sending the user a new build over email with copious NSLogging enabled (maybe even use testflight, its brilliant - lets you see all your logs over the air as they come in) to see where the problem crops up.
Are they on a different iOS version to the simulator you were testing with? Does the problem occur all the time with their iPhone. What about your own iOS device, does it never occur?
Sorry for all the random advice, I'm just chucking stuff out there in the case that one of them fixes it.
If they're running the same app version, same device (real iPhone not simulator) and same iOS version as you I have no idea what the problem is or could be.
If you're feeling lazy (and I reccomend NOT doing this, its quite hacky) you could always use:
finalString = [firstString stringByReplacingOccurancesOfString:#"£" withString:#"£"];
The problem seems to have solved itself on its own. I couldn't reproduce it on either iOS 4 or iOS 5, nor could several other users I spoke with. Upon checking with the user who initially reported the problem, she said that after upgrading iOS from 5.1 to 5.1.1, the problem went away. Oh well... :)

xcode simulator crashing xcode when trying to run app

I was propted by apple to upgrade my debugger settings yesterday, In doing so I have some how broken xcode.
When ever I now try to load an application (dosn't matter what version of the simulator I am using) Xcode and my simulator both freeze up. then the rainbow loader just sits their constantly turning over.
Is there any way to fix this? I'm really stuck and don't know what to do as it dose not seem like a very common problem from all the research I have done to fix this.
I am running the latest version of xcode 4.3.2 (4E2002) and using 5.1 simulator.. and have tried 4.2 simulator to the same effect.
any help in getting my xcode back up and running would be massively appreciated.
Okay so I figured out what the problem is but not a real solution...
Basically the error started happening when I was prompted by xcode to update my debugger to the LLDB version. this is what cause my simulator to keep crashing xcode.. or vice versa honastly I still dont know why this is happening but yea...
so.. what I did to get this simulator working again was go to Product>edit scheme> debugger then changed from LLDB back to GDB.. this solved my issue for now... however I need to figure out why LLDB is not working and what I should do leading into the future. hope this helps someone else.
I have facing this problem too but I got a solution either you said its temporary ... some time ios 5.1 simulator hangs when I shifted to the ios 4.1 sdk its a common practice for the developer to check it I have simply first close the simulator and again start it and then reset all the content in the preference area that its resolved my issue .. check it might be you also got resolve for apply this trick or technique.
Thanks
In my case, was too many old breakpoints tracks (788), even to deleted files, I just clean it and now it runs perfect, I hope it helps.
A picture to illustrate:

detecting and preventing crashed on older iOS (Suspecting EventKit)

Dear Scholars.
I have created a simple application using the latest SDK (4.2.1), Which runs smoothly and error free on all devices with iOS 4.x.x.
Lately I am getting some comments from users with older iOS version complaining the application is crashing on start, on Apple's crash log I see nothing at all.
Pushing my investigation forward, the only suspect I have at the moment is the use of EventKit class, which if memory serves, where introduced only after iOS4.
I am using it very lightly in one of my classes, and it works perfectly on iOS4.2.1
#import <EventKit/EventKit.h>
//some time later
[self setADateInCal: [MyTimeArray objectAtIndex:0] :formatterDate];
Thus my Questions:
Can this be the issue that crashes my application on iOS < 4 ?
How can I prevent it without dropping the feature for people with iOS4
In general, How can I test this? I have the latest official iOS on my device and SDK, the simulator is limited to how back it can go in regrading to iOS version... any magical way to do so?
1.) Yes. If it wasn't in the API in <4.0 than anyone not running >4.0 will crash.
2.) Test to see if the class is available using NSClassFromString (Google for examples) and respondsToSelector in correspondence to see if the method you want is available to use in the OS version the client is running. You will also probably need to weak link the EventKit framework (again Google for how to do this).
3.) The only real way to test this is to keep a device at the OS you want to test. Personally, I have an old iPhone that I never update running 3.1.3 for things just like this. Alternatively, you can keep old installs of xcode+iOSSDK on different partitions or something and use their simulator. (for future updates i guess since you obviously haven't done this for <4.0). But no, there is no magical way to do this. sorry.
edit for clarity on Number 2: Basically you will check to see if the class/method you want is available on the OS version you are currently running, if it is you can use it, if not you will have to find a work around (omit completely or do it another way that is compliant with older versions).
Yes it could be causing the crash. Issues with missing libraries do not report anything in the apple crash log.
To prevent it from happening you need to do two things,
Weak link the event kit library in xcode.
Check for its existence in your code with something like
,
if(!NSClassFromString(#"EKEventKit")){
//do stuff with event kit
}
The only way to test on the actual iOS version is to get hold of a physical device running ios < 4.