public void Encode() { IntPtr nscoding = Runtime.GetProtocol("NSCoding"); Assert.That(nscoding, Is.Not.EqualTo(IntPtr.Zero), "NSCoding"); #if !XAMCORE_2_0 // NSObject does not conform to NSCoding using (var o = new NSObject()) { Assert.False(o.ConformsToProtocol(nscoding), "NSObject/NSCoding"); using (var c = new NSCoder()) { Assert.Throws <InvalidOperationException> (delegate { o.EncodeTo(c); }, "NSObject/!NSCoding"); } } #endif // NSNumber conforms to NSCoding using (var n = new NSNumber(-1)) { Assert.True(n.ConformsToProtocol(nscoding), "NSNumber/NSCoding"); using (var d = new NSMutableData()) using (var a = new NSKeyedArchiver(d)) { n.EncodeTo(a); a.FinishEncoding(); } } }
public void Copy() { IntPtr nscopying = Runtime.GetProtocol("NSCopying"); Assert.That(nscopying, Is.Not.EqualTo(IntPtr.Zero), "NSCopying"); IntPtr nsmutablecopying = Runtime.GetProtocol("NSMutableCopying"); Assert.That(nsmutablecopying, Is.Not.EqualTo(IntPtr.Zero), "NSMutableCopying"); // NSObject does not conform to NSCopying using (var o = new NSObject()) { Assert.False(o.ConformsToProtocol(nscopying), "NSObject/NSCopying"); Assert.False(o.ConformsToProtocol(nsmutablecopying), "NSObject/NSMutableCopying"); } // NSNumber conforms to NSCopying - but not NSMutableCopying using (var n = new NSNumber(-1)) { Assert.True(n.ConformsToProtocol(nscopying), "NSNumber/NSCopying"); using (var xn = n.Copy()) { Assert.NotNull(xn, "NSNumber/Copy/NotNull"); Assert.AreSame(n, xn, "NSNumber/Copy/NotSame"); } Assert.False(n.ConformsToProtocol(nsmutablecopying), "NSNumber/NSMutableCopying"); } // NSMutableString conforms to NSCopying - but not NSMutableCopying using (var s = new NSMutableString(1)) { Assert.True(s.ConformsToProtocol(nscopying), "NSMutableString/NSCopying"); using (var xs = s.Copy()) { Assert.NotNull(xs, "NSMutableString/Copy/NotNull"); Assert.AreNotSame(s, xs, "NSMutableString/Copy/NotSame"); } Assert.True(s.ConformsToProtocol(nsmutablecopying), "NSMutableString/NSMutableCopying"); using (var xs = s.MutableCopy()) { Assert.NotNull(xs, "NSMutableString/MutableCopy/NotNull"); Assert.AreNotSame(s, xs, "NSMutableString/MutableCopy/NotSame"); } } }
public void Encode() { IntPtr nscoding = Runtime.GetProtocol("NSCoding"); Assert.That(nscoding, Is.Not.EqualTo(IntPtr.Zero), "NSCoding"); // NSNumber conforms to NSCoding using (var n = new NSNumber(-1)) { Assert.True(n.ConformsToProtocol(nscoding), "NSNumber/NSCoding"); using (var d = new NSMutableData()) using (var a = new NSKeyedArchiver(d)) { n.EncodeTo(a); a.FinishEncoding(); } } }