SuppressMessage in interface - fxcop

I tried to suppress a particular FxCop warning for a method defined in an interface by adding SuppressMessage attribute to the method. But the warning still appears. I know the SuppressMessage attribute is the right choice.
public interface ICustomerAccess
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design",
"CA1024:UsePropertiesWhereAppropriate",
Justification = "This method involves time-consuming operations", Scope="member")]
IList<ICustomer> GetCustomers();
}
Does anyone have the experience on suppressing FxCop warning in an interface?
Thanks,
H

For the record, the answer is in the question's comments:
#Angelina said: Thank you very much! I
am able to resolve the issue by adding
CODE_ANALYSIS to the project.

Related

Intellisense - deduce right Class by its methods

I'm used to work with NetBeans and now I'm trying IntelliJ. So my question is: Does IntelliJ has a way to get right class by its methods?
For example, in NetBeans if I write:
glGenBu // Intellisense will kick in and will suggest me
to use GL15.glGenBuffers() method from GL15 class
This will automatically import the right library.
This is very handy because I'm working with LWJGL and it has a bad way to manage OpenGL methods ('GLXX' where XX is the version of OpenGL and all methods that appeared in that version are stored in that class) and I never remember the right class where my desired method is.
Thank you.
Pressing Ctrl+Space when you already see completion list will show more suggestions, with static methods from the entire project among them. See https://www.jetbrains.com/help/idea/auto-completing-code.html for more details.

Why does Xamarin ListView Cahcing Strategy show "Ambiguous Reference"?

Below is a screenshot of a page in the "core" project. When adding CachingStrategy="RecycleElement", I receive an
"Ambiguous Reference" error.
Hovering over it does not give any additional information on how to fix it, neither does ReSharper.
You can specify RecycleElement in the ListView constructor instead using x:Arguments
<ListView ...>
<x:Arguments>
<ListViewCachingStrategy>RecycleElement</ListViewCachingStrategy>
</x:Arguments>
</ListView>
ReSharper is simply unable to see that property because it does not really exist or at least ReSharper is not able to detect it (read that paragraph for Xamarin saying this). Xamarin Forms does some tricky stuff (I think they use PInvoke or a compiler trick but cannot quite remember), when the code gets compiled, in order to change your ListView code when that property is specified and ReSharper is not aware that it is going on. Hopefully ReSharper will fix this in an update though I am not sure if they ever will.
When use the above method shows
"Error CS0234 The type or namespace name 'CachedListView' does not exist in the namespace 'Xamarin.Forms' (are you missing an assembly reference?)" is it nesseary to add x:Arguments? or is it nessasary to give reference as
xmlns:local ="clr-namespace:TestProject.Data"
Just add class
public class CachedListView : ListView
{
public CachedListView() : base(ListViewCachingStrategy.RecycleElement) { }
}
And in Xaml use CachedListView instead ListView.

Swift init with closures is not visible in Objective C

My swift custom initilizer with closure is not visible in the objective c code.
init(url:String,request:ABaseRequest,
type:AnyClass, success:(ABaseResponse)->Void,
failure:(ResponseCode,NSError)->Void) {
......
......
}
where as init without closure is visible
init(url:String,request:ABaseRequest,type:AnyClass) {
......
......
}
Do you guys know how to solve this issue?
After inspecting whole code I found the problem in my code. A class used inside my closure is not annotated with #objc ! . So be careful guys, each and every classes that is going to be exposed to objective c should be annotated with #objc. Thanks.
By now you may have already solved the problem. I've run into a similar one myself.
Unless there are other problems, the visibility issue can be fixed by trying to build the project. If you introduce something new in your Swift code, it may not be immediately visible to Objective-C code, but building the project should fix it.
If there is another problem related to your custom initializer, the compiler will tell you when you try to build. If that is the case, share the problem here.

Overriding a method in behavior -smalltalk-

I have an object A in Smalltalk and I want to override a method specifically the method compile in the behavior.
my aim is to customize compile method by adding asserts before compiling a code.
I know that compile is found in the A class (up until behavior) but how can I use it ?
I have tried a lot of ways non are working, the last of what I did is :
I defined a method :
compile:code
self class compile:code. "this is not working it tells me message not understood"
how can I do this ?
[Pharo] Try redefining the method #compile:classified:withStamp:notifying: on the class side of your class. In this new implementation combine the assertion code with the first parameter (which is the source code you are about to compile) and then delegate to super with the modified code.

Is there a key combination in Xcode to implement a Protocol?

In Visual Studio if I define a class to implement an interface e.g.
class MyObject : ISerializable {}
I am able to right click on ISerializable, select "Implement Interface" from the context menu and see the appropriate methods appear in my class definition.
class MyObject : ISerializable {
#region ISerializable Members
public void GetObjectData(SerializationInfo info,
StreamingContext context)
{
throw new NotImplementedException();
}
#endregion
}
Is there anything anything like this functionality available in Xcode on the Mac? I would like to be able to automatically implement Protocols in this way. Maybe with the optional methods generated but commented out.
XCode currently does not support that kind of automation. But: an easy way to get your code bootstrapped with a protocol is to option-click the protocol name in your class declaration
#interface FooAppDelegate : NSObject <NSApplicationDelegate,
NSTableViewDelegate> {
to quickly open the .h file defining the protocol. From there, copy and paste the methods you're interested in. Those headers tend to be well-commented, which helps in determining which methods you can safely ignore.
I have not seen that feature in Xcode.
But it seems like someone could write a new user script called "Place Implementor Defs on Clipboard" that sits inside of Scripts > Code.
You did not find this useful.
There is not currently such a refactoring in Xcode.
If you'd like it, please file an enhancement request.
I know this thread s a bit old, but I wondered the same thing and found this question.
In my case, I'm defining a property in the interface (.h) and I want to synthesize it in the implementation (.m). I also need to implement methods defined in the interface. Yes, Xcode helps as others have mentioned, but modern IDEs offer these productivity enhancements for things we do frequently. It appears that this is still not a feature in Xcode 4.3.3. However, the feature is available in JetBrains' AppCode. I'm only dabbling with the trial, but it appears to only be possible one property or method at a time, not the whole interface like Visual Studio.
Xcode can help you per protocol method, lets say you have a protocol like this:
#protocol PosterousWebsitesDelegate <NSObject>
- (void)PosterousWebsitesLoadSuccess:(PosterousWebsites*)websites;
#end
in the #implementation section of your .m file you can start writing the name of the method and pressing ESC key to autocomplete the signature of the method/selector:
-(void)Poste (...press ESC...)
Xcode will autocomplete a full signature of the #protocol method, pres TAB to confirm the code.
If you are really committing to learn OSX/iOS Development, I would recommend you to read "XCode 3 Unleashed", a book that really helped me to know Xcode as deep as I know VS :)
check this plugin
https://github.com/music4kid/FastStub-Xcode
it does the thing that you are asking for and more.
Macrumors had a discussion on this too. There is a link to some apple scripts. I haven't actually tried these.