Xamarin - tutorials reference missing identifier field - xamarin.ios

I downloaded Xamarin a few days ago and started going through the tutorials but i cannot even complete a relatively simple tutorial
Xamarin Tutorial
I get to step "Create the UI" where on the StoryBoards it starts referring to an field called "Identifier" - i can not find this. Some posts i found on Stackoverflow suggest that this is now called Storyboard ID? However storyboard ID is not available on all objects. StoryboardID is only available for Controllers, in this specific tutorial it is trying to set a Table View Cell identifier (!??????).
The tutorial becomes completely useless then even from a basic understanding point of view because these IDs are used later on in the C# code.
I am almost certain that this problem is because of Xcode version changes between 4 and 5 or something however its incredibly frustrating for someone new to Xamarin when going through the basic tutorials that they don't make any sense when it relates to Xcode ):
If anyone could shed some light on this it would be great.
Thanks.

You should set Identifier for Table View Cell. In the tutorial on the image you may notice that cell is selected. And also in the tutorial written that you should set Identifier to retrieve instances of UITableViewCell, not for StoryBoard.

Related

Kivy MapView offline

I'm planning to write a Kivy app containing a (small) offline map. Kivy's Mapview widget seems to be a good choice to display maps but before I start diving into it further one question that I couldn't figure out: Is it possible to use Mapview offline, by using locally stored tiles?
I managed to do it, it turns out it is not that complicated to do but it took some research (at least for a beginner like me). Here is a rough outline:
1. MapView supports mbtiles as source as detailed in the documentation - mbtiles can be created in TileMill
2. I wanted a map in Openstreetmap style, so I downloaded openstreetmap-carto from github. The installation manual explains quite well what needs to be done in order to obtain a map in this style
4. There the biggest challenge was to set up and manipulate a PostGIS database. This link helped: http://www.bostongis.com/PrinterFriendly.aspx?content_name=loading_osm_postgis
There were some additional issues along the way but all could be solved by combing through the internet.

What can I do to make my sub-derived custom control appear in the Blend Assets library?

I am creating a series of window mockup templates based on the excellent Mockups library available on CodePlex.
I'm using their BaseMockup as the base for my control as well, and I followed the same outline of the steps listed here for sub-deriving from existing controls (Create a new empty class, add your default style to /Themes/generic.xaml, etc.)
The control is working great - the only thing is that it doesn't show up in the Assets library. I think this is because it's sub-derived, or because I need some attribute (the equivalent of the ToolboxItemAttribute for WinForms controls? ... which didn't work) to get it hooked up.
When I modify the code to derive directly from Control, it shows up - no custom attribute necessary. Of course that defeats the purpose of what I'm trying to do though...
The only thing I can find are several articles telling me to muck with registry keys, and none of them are clear or suggest a definitive way to do this with Blend 4. That last one advertises as a Blend 4 tips article, but admits at the end that it plagiarizes the content from the other two (for Blend 3).
Is that my only option - register my DLL? Is there a better way to do this?
A while ago I wrote a blogpost about this. I've included a .reg file and a .bat file for setting up the register and some directories. I think that's what you are looking for.
I believe you do need to muck with registry keys. Specifically,
32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NET Framework\v4.0.30319\AssemblyFoldersEx
64 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NET Framework\v4.0.30319\AssemblyFoldersEx
Create a new key with the name of your control assembly. Then edit the Default string value under this key and set the value to the directory where the control assemblies are installed. See here for a full example (using the Silverlight paths).
Found it - there is an analogue attribute after all, it's ToolboxBrowsableAttribute.
You have to go through a little more rigmarole to get it set up, but it works great - no registry mucking necessary. It requires creating a designer metadata provider class, attributing your assembly so it's designer-discoverable, and then adding the attributes to your sub-derived controls inside your metadata provider.
Make sure you choose the appropriate version of the page for your version of Visual Studio, because the interface changes a good bit between 2008 and 2010.
This article on CodeProject has some good, real-world examples of setting this up. They're all in the 2008 style though, so bear that in mind if you're using 2010.

Xcode4: two entities with "required" relationship ... failing to be maintained by Core Data?

EDIT: might be fixed in latest Xcode 4.0.2 (just released) - I'm downloading this out now, and will re-edit once I've tested it.
Create two entities (call them "Manager" and "Employee", to stick with Apple's docs).
Create a relationship, "worksFor" from Manager (1) to Employee (many), and mark it as "not optional". (you'll probably need to create 2 relationships, mark 1 as inverse of other)
Hook up an interface using IB, according to Apple's original docs (NB: these don't work any more, but here's an almost exact recreation of the basic setup in Xcode4: http://rgprojection.blogspot.com/2011/04/xcode-4-and-core-data-macos-x.html) and use Bindings (as described in the linked post) to create/add/delete the objects.
Now try to save. ERROR: "worksFor is a required property".
In previous versions of Xcode, this worked as expected: you'd told Xcode that there was a bidirectional relationship, you told it that it was required, and so when it added the "Employee" to the "Manager", it automatically hooked-up the inverse.
Has anyone else worked out how to make Xcode4 do what it's supposed to? Is it an Xcode4 bug? I know that some of the CoreData support in Xcode4 has been deleted, with no replacement (yet), so I'm wondering if this has been deleted too?!
EDIT: here's another project, one I made from scratch, same problem. Although (xcode4 bug, definitely!) this time I created the Relationship in the "grid" editor view rather than the "tree graphical" view... and the generated source code for objects was different (should not be the case, obviously)
second project screenshot
EDIT2: StackOverflow was showing the screenshot above, but has now removed it, you'll have to click on the link. Sorry.
I haven't seen the problem you describe and I've created several data models under Xcode4. It appears to work just like it did in previous versions in that regard. I think you've got something else going on.
Xcode 4.0.2 seems to have fixed the problem - everything works as expected now, with no changes to code :)

where do I access the comment field for a core data model to add the "xmod" for mogenerator?

where do I access the comment field for a core data model to add the "xmod" for mogenerator?
hopefully not too dumb a question - but I just can't see where in my existing Xcode 4 model (*.xcdatamodel) to put the "xmod" to get mogenerator working
(reference https://github.com/rentzsch/mogenerator )
Xmo'd currently doesn't work with Xcode4. It is a .pbplugin and Apple removed support for them in Xcode4. There was a couple guys working on a new way of doing it, but I haven't seen any updates in awhile on it.
You can still use the AppleScript and command line though. You just have to manually trigger it and add the files. You lose the automation that Xmo'd gave you. Also, Xmo'd still works in Xcode3. So you can switch over to it when doing your modeling if you really wanted to.

Can I associate custom metadata with an ALAsset?

I'm building an iPhone app that, among other things, allows the user to take and store photographs associated with locations. I am currently using the ALAssetLibrary to allow the photographs to be stored in Photos and be accessible outside the app (on a computer for instance via the built-in mechanisms). There is not a lot of technical content out there for working with the ALAssetLibrary but from what there is I have managed to cobble together a working version of this. I have had to resort to storing a dictionary of photo URLS in my app and manually detecting if the photo still exists when displaying lists of them because there does not seem to be a way to add custom metadata to an ALAsset.
What I would really like to do is add two custom metadata fields to each asset to provide it with a title and a custom id value that I can use to filter on when enumerating the asset library.
As a secondary task, I'd like the user to be able to update the title metadata.
Can it be done? At this point, I really don't think it can because the API really doesn't seem to provide the necessary methods to get/set custom metadata. I'm hoping against all odds that there is some other aspect to the AssetLibrary framework that I have not yet discovered.
At a minimum, if someone can authoritatively say "NO" then at least others might find this breadcrumb on their own trail of hope and change tack more quickly!
And, having 0 reputation I can't tag it with AssetLibrary :( wow, this day is just going downhill. FML
I've been looking over the documentation and I dont think it is possible to tack on additional fields to the ALAsset object, well you can create your own object or extend theirs but that wont help you when your pulling back assets because you'll need to init yours and populate it then.
Look I know this falls short of a really good answer but I had to try.
The ALAsset class documentation describes a property - customMetadata. This is documented to be an NSDictionary of whatever custom tags you want. Currently, however, it is not implemented in the class (I've raised a bug on Apple's developer site to bring the issue up).

Resources