Named and optional parameters in MonoDevelop - xamarin.ios

I'm trying to use named and/or optional parameters in MonoTouch but it seems that MonoDevelop doesn't like that.
I have a constructor like this:
public SomeAttribute ( string label, string detail, bool custom = false )
{
//...
}
While that compiles just fine, MonoDevelop underlines the line in red, signalizing a compiler error (which doesn't occur though). Is there some reason why this happens, and can I somehow update MonoDevelop to not see this as a error?
I'm using MonoDevelop 2.4.2 (on Mac). Thank you.

Upgrade to MonoDevelop 2.6 beta 1.

Related

Why happens this weird compiler behaviour in Android Studio 3.6?

I've updated for Android Studio 3.6 today (#AI-192.7142.36.36.6200805, built on February 12, 2020). I use Kotlin (my version - 1.3.61 - is updated). My Gradle version is 5.6.4(the last one).
A very strange stuff is happening for me.
The first problem is that now I need to press save icon (^s) before running. Until Android 3.5 was automatic. But it's Ok, it is a matter of getting used to it.
The second problem is worst. I have a typealias that was ArrayList and I needed change to a simple Array, so I've changed the previous code typealias Duo = ArrayList<Double> for typealias Duo = Array<Double>.
It's a big project, and I have in some module a small piece of code, that can be shown as
var gData = ArrayList<Duo>()
gData.add(arrayOf(5.0, 1.0))
after I've saved the files (^s) and run.
Now appears the below error message pointing to the second line, even if the editor don't show a red mark in the code:
Type inference failed. Expected type mismatch: inferred type is Array<Double>
but Duo /* = ArrayList<Double> */ was expected
I have no clue what is happening.... I've tried to restart and restart and invalidate caches, with no success. The same messages. I use find in path (^+f) to check duplicate declarations of duo. Nope.
When I've tried the below toy code in Kotlin Playground, it's OK. No error.
typealias Duo = Array<Double>
fun main() {
var gData = ArrayList<Duo>()
gData.add(arrayOf(5.0, 1.0))
println(gData[0][0])
}
I'm lost!
UPDATE
It should be a very serious bug in Android Studio 3.6.
I've solved the problem, but it doesn't make any sense. I simply have replaced all 13 occurrences of duo with dux and the problem is over! (Ctrl + Shift + R - Replace in Path) After, I've switched back for duo (13 occurences) and the problem didn't return, but the mystery is on the air.

"Module openfl.display.Shader does not define type Shader" when trying to do a release for neko or windows [Flash Develop/Haxe]

this is somenthing I was trying to solve for HOURS, but I don't get why this is not working.
First of all, I'm trying to do a release for neko or windows in Flash Develop. My project is a OpenFl one, and the language is Haxe 3.
What I have installed:
actuate: [1.8.6]
flixel-addons: [2.3.0]
flixel: [4.2.1]
hxcpp: [3.4.64]
lime: [2.9.1]
nape: [2.0.20]
openfl: [3.6.1]
And yes; I'm using haxeFlixel.
When I try to do a release in windows or neko, these errors appear:
-E:/HaxeToolkit/haxe/lib/openfl/3,6,1/openfl/_internal/renderer/opengl/utils/SpriteBatch.hx:12: characters 7-28 : Module openfl.display.Shader does not define type Shader
-E:/HaxeToolkit/haxe/lib/openfl/3,6,1/openfl/_internal/renderer/opengl/utils/SpriteBatch.hx:12: characters 7-28 : For function argument 'ax'
-src/skill/SkillLogicProjectil.hx:13: lines 13-54 : Defined in this class
-E:/HaxeToolkit/haxe/lib/openfl/3,6,1/openfl/_internal/renderer/opengl/shaders2/Shader.hx:11: characters 7-28 : Module openfl.display.Shader does not define type Shader
The most funny thing is: I'm not even using Shader in SkillLogicProjectil. That class only creates a sprite that follows a Player and has a var with the sprite that represents the skill.
If I comment this class, the error is in another class, and finally ends in my GameState.
This error doesn't appear when I do a release in html5. In html5 there are no problems with the release, but I canĀ“t make the game load without Flash Develop running the process in http://localhost:2000/. I need to make a release that can be opened with a computer, without using Flash Develop to open it.
What can I do?.
The new version of Flixel supports Haxe 3.4.3 and OpenFL 8, have you given these versions a try?

Xamarin Linker: Default constructor not found for type MvvmCross.Platform.IoC.MvxPropertyInjector

This is the same question as this, but the solution is not working for me. I have a LinkerPleaseInclude.cs file with the following:
public void Include(MvvmCross.Platform.IoC.MvxPropertyInjector injector)
{
injector = new MvvmCross.Platform.IoC.MvxPropertyInjector();
}
I'm using Link All as the linker behavior, but I was under the impression that including the above in LinkerPleaseInclude.cs would hint the linker to not strip it out.
Not sure if it matters, but here are some platform details:
Xamarin Studio 6.3
MvvmCross 4.4.0
.NETCore UWP 5.3.3
A file named LinkerPleaseInclude.cs does not preserve anything by itself. It's only a convention used by Mvvmcross.
So if nothing calls into (or preserve*) your Include method then the linker won't mark it (as required) and the MvxPropertyInjector .ctor won't be marked.
* adding a [Preserve] attribute on the method will ensure the linker includes it (and everything it calls).

Getting an error when trying to call LocalReport.Render("EXCELOPENXML")

I have installed DocumentFormat.OpenXml (ver 2.5.5631.0) from nugetpackage manager in VS2010. I can see the reference to the DLL. I have created a package folder. But when I am trying to execute method:
public override void Render(LocalReport report)
{
this.SetUpParameters(report);
byte[] renderedReport = report.Render("EXCELOPENXML");
this.target.UpdateRenderedReportContent(renderedReport);
}
I am getting this error:
Specified argument was out of the range of valid values. Parameter name: format
When I am using
report.Render("EXCEL");
I am not getting any error. I have to use EXCELOPENXML to generate xlsx excel.
What version of Microsoft.ReportViewer.WinForms are you referencing? If it's less than 11.0, that's probably your problem.
Incidentally, Visual Studio (2013) declined to show me version 11.0 as an option from the Add Reference dialog. I don't understand why. I had to browse to the the assembly in the GAC:
C:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WinForms\11.0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.WinForms.DLL
Once you do that, run the following method. You should see EXCELOPENXML as an option now.
new LocalReport().ListRenderingExtensions();

Xcode 4.5 // import CoreLocation shows: Expected ';' after method prototype

After download the latest version of the Xcode 4.5 I receive the next trouble.
We use the CoreLocation library, but the when we try to build the project it fails because found the next error:
Parse Issue: "Expected ';' after method prototype" at CLLocationManager.h
In this method:
- (void)allowDeferredLocationUpdatesUntilTraveled:(CLLocationDistance)distance
timeout:(NSTimeInterval)timeout __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_6_0);
Any suggestions?
I have found a solution for me:
I installed iOS SDK 5.1 on Xcode 4.5.
Check it here: How can I add older version of iOS SDK in Xcode 4.5
And it worked for me..
I evaluated the configuration of the project, with a new Xcode 4.5 project ... without success ... trying to apply the same compiler conditions and so on ...
The next step was trying to make the code compliant with the iOS 6 specs (solving deprecated code) and converting the code to the ARC requirements
And, after a couple of hours of frustrating work ... I decided to unblock the file CoreLocation.h on the library directory and comment the method.
I now that is not the solution, but I didn't found any other solution. If anybody has been found any other possibility please ... let me know

Resources