मैं इस परीक्षण परियोजना में ब्रिजिंग हेडर्स का उपयोग करने का तरीका सीखने की कोशिश कर रहा हूं। इस भाग के लिए, मैं एक ऐसी विधि चाहता हूं जहां यह एक CGPoint सरणी लेता है और देता है।

    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>
    #import <CoreGraphics/CoreGraphics.h>

    @interface OpenCVWrapper : NSObject

    + (UIImage *)grayscaleImage:(UIImage *)image;
    + (UIImage *)gaussianBlurImage:(UIImage *)image;
    + (UIImage *)cannyEdgeImage:(UIImage *)image;

    //Error says Expected a type
    + ([CGPoint *])lineEdges:([CGPoint *])points;

    @end

क्योंकि मैं इसके लिए नया हूं, मुझे नहीं पता कि समस्या की तलाश कहां से शुरू करें।

1
Richard Sun 11 नवम्बर 2018, 05:41

1 उत्तर

सबसे बढ़िया उत्तर

चूंकि आपको CGPoint की एक सरणी वापस करने की आवश्यकता है, इसलिए आपके सरणी में NSValue प्रकार होना चाहिए, क्योंकि सरणी में संरचना प्रकार नहीं हो सकता है

+ (NSArray<NSValue *> *)lineEdges:(NSArray<NSValue *> *)points;

और आपको अपनी विधि को कॉल करना चाहिए

NSArray *lineEdges = [OpenCVWrapper lineEdges:@[[NSValue valueWithCGPoint:CGPointMake(3.3, 4.4)]]];

वापसी मूल्य भी NSValue और निकालने में होना चाहिए

NSValue *val = [lineEdges objectAtIndex:0];
CGPoint p = [val CGPointValue];
1
cool_jb 11 नवम्बर 2018, 18:32