টাইপটি অভ্যন্তরীণ হলেও এটি একই মডিউলে উপস্থিত থাকলেও সুইফটে "অঘোষিত ধরণের ব্যবহার"


173

আমার মডিউলটিতে আমার একটি টাইপ রয়েছে:

import Cocoa

class ColoredDotView : NSView {
   ...
}

এটি কোনও ইস্যু ছাড়াই বিভিন্ন শ্রেণিতে ব্যবহৃত হয়:

class EditSubjectPopoverController : NSObject {

    @IBOutlet internal var subjectColorDotView : ColoredDotView!
    ...
}

তবে কোনও কারণে , যখন আমি এটি একটি নির্দিষ্ট শ্রেণিতে ব্যবহার করি, তখন টাইপটিতে আমার সংকলন ত্রুটি রয়েছে:

class EditTaskPopoverController : NSObject {

    @IBOutlet internal var lowPriorityDotView : ColoredDotView! // Error here
    @IBOutlet internal var medPriorityDotView : ColoredDotView! // And here...
    @IBOutlet internal var highPriorityDotView : ColoredDotView! // And here...
    ...
}

সংকলনের ত্রুটিটি হ'ল:

সম্পাদনা টাস্কপপওভারকন্ট্রোলআর সুইফট: 15: 49: অঘোষিত ধরণের 'কালারডডটভিউ' ব্যবহার

যা আমি বুঝতে পারি না। এটি ফাইলের প্রথম সংকলন ত্রুটি এবং বাকি ত্রুটিগুলি প্রথমটির লক্ষণগত matic আরও, সংকলন ত্রুটিযুক্ত অন্য কোনও ফাইল নেই । ফাইলটি একই মডিউলে থাকায় টাইপটি কেন অঘোষিত হয় তা আমি বুঝতে পারি না:

এখানে চিত্র বর্ণনা লিখুন

আমি প্রকল্পটি পরিষ্কার করার, বিল্ড ফোল্ডারটি পরিষ্কার করার এবং এক্সকোডটি পুনরায় চালু করার চেষ্টা করেছি no কোন সম্ভাব্য মিসটপস সুইফটে একটি undeclared typeসংকলক ত্রুটি সৃষ্টি করতে পারে ?


আমার অনেকগুলি কেস হয়েছে যেখানে প্রকৃত ত্রুটিটি আরও কয়েক লাইন (বা আরও) নীচে রয়েছে এবং এক্সকোড ভুলভাবে একটি ত্রুটি বার্তার সাহায্যে নির্দোষ কিছু ট্যাগ করেছে। আপনার বাকী কোডটি মুছে ফেলে যদি আপনি সেই ত্রুটিটি সরিয়ে যেতে পারেন তবে দেখুন কিছুটা পিছনে তা আবার যুক্ত করুন ...
নেট কুক

ধন্যবাদ নেট - দুর্ভাগ্যক্রমে আমি varঘোষণাগুলি সরিয়ে ফেলি এবং একটি বিল্ডিংয়ে নামি। তারপর আমি যোগ এক উপরের ঘোষণা, এবং ত্রুটি অবিলম্বে ফিরে এসেছে: imgur.com/VUUBK2K
ক্রেগ ওটিস

উত্তর:


200

আমার জন্য, আমি এই ত্রুটির মুখোমুখি হয়েছি যখন আমার পরীক্ষার টার্গেটটিতে এমন কিছু সুইফট ফাইল নেই যা আমার অ্যাপ্লিকেশন বিল্ড টার্গেটটি সংকলন উত্সগুলিতে করেছিল। এটি অত্যন্ত বিভ্রান্তিকর কারণ কারণ 'অঘোষিত প্রকার' অন্য অনেক জায়গায় কোনও সমস্যা ছাড়াই ব্যবহৃত হচ্ছিল এবং ত্রুটিটি অস্পষ্ট বলে মনে হয়েছিল। সুতরাং সমাধানটি অবশ্যই পরীক্ষার টার্গেটে 'অঘোষিত টাইপ'যুক্ত ফাইল যুক্ত করা ছিল।


2
আমার জন্যও একই: সমস্যাটি তখন ঘটে যখন অন্য একটি দ্বারা ব্যবহৃত ক্লাস টেস্ট টার্গেটের অন্তর্ভুক্ত হয়, খুব বেশি পরীক্ষার লক্ষ্যে অন্তর্ভুক্ত হয় না! (╯ ° □ °) ╯︵ ┻━┻
ফ্রান্সেস্কো ভাদিকামো

2
আপনি কেবল এমন একটি সমস্যা সমাধান করেছেন যা আধ ঘন্টা ধরে আমাকে বিরক্ত করেছিল। আমি একটি বর্তমান প্রকল্পে কিছু পূর্ববর্তী সুইফ্ট ক্লাস আমদানি করতাম, তবে স্পষ্টতই এখনও পরীক্ষার টার্গেটে পুরানো ক্লাসগুলি যুক্ত করা যায় নি। তবে অটোকম্প্লিশন আমাকে সব কিছু ঠিকঠাক ভাবতে বাধ্য করেছিল ... যতক্ষণ না আমি নির্মাণ এবং চালানোর চেষ্টা করি। কি ...! তাই আপনাকে অনেক ধন্যবাদ.
জিম হিলহাউস

2
এটি আমার পক্ষেও সমস্যাটি সমাধান করেছে। আমি একটি ফাইল ক্লিক করেছি এবং ফাইল-> এটির একটি অনুলিপি তৈরি করেছি। নতুন অনুলিপিটি তালিকাভুক্ত ছিল তবে "সংকলন উত্সগুলিতে" অন্তর্ভুক্ত ছিল না
রন মাইশুক

1
আমার ক্ষেত্রে আমি 3 টি টার্গেট (প্রকল্প, ইউআই এবং ইউনিট পরীক্ষা) নির্বাচন করেছি, এই ত্রুটিটি সমাধান করার জন্য আমাকে ইউআই ও ইউনিট পরীক্ষার লক্ষ্যগুলি নির্বাচন করতে হয়েছিল
ফ্রেঙ্ককুল

1
"সমাধানের সমাধান ..." অনুমান করে যে পাঠক পরীক্ষার লক্ষ্য কীভাবে যুক্ত করবেন তা বোঝে। আমাদের জন্য কেবল এক্সকোড দিয়ে শুরু করার জন্য, এটি কোনও "অবশ্যই ..." মুহুর্ত নয়। তিনি আপনার উত্তরটি শেষ করার সাথে সাথে আমি @ এডউইনের উত্তরটিকে সমর্থন করেছি।
মাইকেল

181

এটি ইতিমধ্যে @ ক্রেইগ ওটিস দ্বারা জবাব দেওয়া হয়েছে, তবে যখন প্রশ্নে ক্লাসগুলি একই লক্ষ্যগুলির সাথে সম্পর্কিত না হয়, তখন সাধারণত পরীক্ষার লক্ষ্যটি অনুপস্থিত থাকে তবে বিষয়টি তৈরি হয়। নিম্নলিখিত চেক বাক্সগুলি টিক দেওয়া আছে তা নিশ্চিত করুন।


লক্ষ্য সদস্যপদ

সম্পাদন করা

লক্ষ্য সদস্যপদ দেখতে। আপনার ফাইল নির্বাচন করুন এবং তারপরে ফাইল পরিদর্শক (⌥ + ⌘ + 1) [ বিকল্প ] + [ কমান্ড ] + 1 খুলুন

বিস্তারিত বিবরণ


নিশ্চিত নয় তবে যখন আমি "টেস্ট" টার্গেটটি চেক করি না (তখন এই ক্ষেত্রে YAWA- ওয়েদারটাইস্ট)। এটি ত্রুটি ছাড়াই নির্মিত।
ডেলোস

আপনি কি দয়া করে স্পষ্ট করে বলতে পারবেন XCode এ এই টার্গেট সদস্যতাটি কোথায় সেট করবেন? আমি এর আগে দেখে মনে পড়ে না। ধন্যবাদ।
ক্যাসি পারকিনস

2
প্রকৃতপক্ষে, পরীক্ষার টার্গেটটি পরীক্ষা করে দেখুন, এজন্য পরীক্ষার প্রকল্পগুলিতে আমরা "@ টেস্টেবল আমদানি ..."।
..

স্ক্রিন শটটি খুব সহায়ক। ধন্যবাদ!
মাইকেল

37

ভাই, অবশেষে এটি নির্ণয় করুন। একরকম , আপত্তিকর সুইফট ফাইলটি EditTaskPopoverController.swiftদুটি পৃথক বিল্ড পর্যায়ে ছিল।

এটা তোলে ছিল Compile Sourcesসঠিকভাবে অন্যান্য সমস্ত সুইফট ফাইলগুলির সাথে, কিন্তু এটা ছিল এছাড়াও , কিছু খুব অদ্ভুত কারণে, Copy Bundle Resourcesফেজ পাশাপাশি, আমার সব XIB এবং ইমেজ সম্পদ সঙ্গে বরাবর।

এটি কীভাবে পেল তা আমার কোনও ধারণা নেই তবে অতিরিক্ত বিল্ড ফেজ থেকে এটিকে সরিয়ে ফেলা সমস্যার সমাধান করেছে।


আমি এটা, নিষ্কাশিত কারণ আমি ব্যবহার করছিলেন একই সমস্যা ছিল github.com/kronenthaler/mod-pbxproj এবং সুইফট আমি ঘটনাক্রমে গেলিক ভাষার-pbxproj মধ্যে PBXSourcesBuildPhase পরিবর্তে PBXResourcesBuildPhase যেমন প্রকারের দ্রুতগতি যোগ করেছিলেন
Richy

2
Mate! জীবন রক্ষাকারী, এই নিয়ে আমার মাথা নষ্ট করছিলেন। চিয়ার্স
স্পারকি রবিনসন

27

এক্সকোড মেনুতে পণ্য-> পরিষ্কার করুন এবং তারপরে পণ্য-> বিল্ড আমার পক্ষে কাজ করেছিল। নতুন প্রকল্প / ফোল্ডারে আমার প্রকল্পে নতুন ভিউকন্ট্রোলার যুক্ত করার সময় আমি এই সমস্যার মুখোমুখি হয়েছি।


5
2 ঘন্টা, এবং আমি একবারও কোনও
পোড

1
অন্যান্য উত্তর চেষ্টা করে অনেক সময় নষ্ট করেছেন তবে কখনও পরিষ্কার এবং বিল্ট হয়নি। অনেক অনেক ধন্যবাদ
জেরো 0

অ্যাপল টিউটোরিয়ালটি অনুসরণ করার সময়, এক্সকোড 11.0 বিটা 5-এ সুইফটুআইয়ের সাথে খেলার সময় আমার এই ত্রুটি হয়েছিল। ক্যানভাস সঠিকভাবে অন্য ফাইলগুলি প্রদর্শন করছিল, তবে একটি নতুন যুক্ত হওয়া ফাইলটি এই ত্রুটিটিকে ছুঁড়ে মারছিল, ল্যান্ডমার্করো_প্রিভিউগুলি একটি অঘোষিত প্রকার বলে। শুধু বিল্ড ক্লিন সমস্যার সমাধান করেছে।
salo.dm

এই উত্তরটি টেক সমর্থনের সমতুল্য: "আপনি কি আপনার ডিভাইসটি পুনরায় চালু করার চেষ্টা করেছেন?" একটি ভাল টিপ :)
turestested

14

আমার ঠিক একই সমস্যা ছিল. আমার কাঠামোর কিছু ফাইল একই মডিউলের মধ্যে অন্য শ্রেণি থেকে পৌঁছনীয় নয়।

কোনও কারণে এক্সকোডের ফ্রেমওয়ার্কে যুক্ত হওয়া ফাইলগুলি সংকলন সূত্রের অংশ ছিল না। যদি আপনার সুইফ্ট ফাইলটি সংকলন উত্সগুলির অংশ না হয় তবে আপনার এগুলি + এ আলতো চাপুন এবং সেগুলি পপআপে নির্বাচন করে যুক্ত করতে হবে।

স্ক্রিনশট ঘ

এছাড়াও ফাইলটি কাঠামোর টার্গেটের অংশ কিনা তা নিশ্চিত করুন। (নীচের স্ক্রিনশটের ছোট্ট বাক্সটি পরীক্ষা করা উচিত)

স্ক্রিনশট 2


12

আমার কারণ হ'ল একটি ফাংশন নাম যা একই ধরণের সাথে একই ধরণের শুরু হয়েছিল:

@IBOutlet weak var tableView: CustomTableView!

এবং বাস্তবায়নে আমার কাস্টম টেবিলভিউ দিয়ে একটি ফাংশন শুরু হয়েছিল

func CustomTableView(tableView: CustomTableView, dataForRow row:  Int) -> NSData {...}

ফিক্সটির স্বাক্ষরটি পরিবর্তন করা হয়েছিল যাতে এটি (কাস্টম টেবিলভিউ) টাইপের অনুরূপ অক্ষর দিয়ে শুরু না হয়, যেমন:

func dataForRow(row: Int, tableView: CustomTableView) -> NSData {...}

এটি আমার ক্ষেত্রে প্রকৃত কারণে খুব বিভ্রান্তিকর ত্রুটি বার্তা ছিল।


1
অ্যান্ড্রু এই ফিক্স পোস্ট করার জন্য অনেক ধন্যবাদ, এটি একটি দুর্দান্ত সাহায্য ছিল। ত্রুটি বার্তা অবশ্যই বিভ্রান্তিমূলক।
jjc99

7

যদি কেউ একই ধরণের সমস্যার মুখোমুখি হয় তবে কমপাইল সোর্স ফিক্স সমস্যার সমাধান করে না, এক্সকোড পুনরায় আরম্ভ করা হতে পারে (এটি আমার জন্য কাজ করেছিল)। আমার এক্সকোডের সংস্করণটি Version 6.1 (6A1052d)


পুনরায় চালু করা আমার পক্ষে কাজ করেছে, যদিও কোনও সফল কোড তৈরির পরে আর কোনও কোড পরিবর্তন না করেই ত্রুটিটি আবার পপ আপ হয়েছিল।
অবিরাম

এক্সকোডটিকে পুনরায় আরম্ভ করার ফলে অনেকগুলি সমস্যা সমাধান করা হয়েছে, অ্যাপলকে এ সম্পর্কে সত্যই কিছু করা উচিত।
ফোর্জ

5

আমার অ্যাপ্লিকেশনটিতে আমার কাছে অ্যাপের প্রতিনিধি এবং অন্যান্য ক্লাস রয়েছে যাতে পরীক্ষাগুলি সর্বজনীন হিসাবে অ্যাক্সেস করা দরকার। এখানে বর্ণিত হিসাবে , আমি তারপরে আমার পরীক্ষাগুলিতে আমার অ্যাপ্লিকেশনটি আমদানি করি।

আমি যখন সম্প্রতি দুটি নতুন ক্লাস তৈরি করেছি, তখন তাদের পরীক্ষার লক্ষ্যমাত্রা উভয়ই প্রধান এবং পরীক্ষার অংশ ছিল। পরীক্ষা থেকে তাদের সদস্যপদ থেকে সরানো সমস্যার সমাধান করেছে solved


5

আমার ক্ষেত্রে, টেস্টটারেটের সংকলন উত্সগুলিতে মূল লক্ষ্য থেকে ফাইল ছিল

রেফ :

পরীক্ষার লক্ষ্য সংকলন উত্স ট্যাবে প্রধান লক্ষ্য থেকে ফাইল রয়েছে files

কেন এমন হয়?

  • ফাইল তৈরি করার সময় আমরা টেস্টটারেট অ্যাসোসিয়েশন চেক করার পরে এটি ঘটে

  • বা ম্যানুয়ালি ইন্সপেক্টর থেকে এই বিকল্পটি পরীক্ষা করে দেখুন।

    রেফ :

    ফাইল তৈরি করুন - পরীক্ষার লক্ষ্য পরীক্ষা করা হয়

আমি কীভাবে সমাধান করেছি?

  • আমি পরীক্ষার লক্ষ্য সংকলনের উত্স থেকে মূল টার্গেটের ফাইলগুলি সরিয়েছি

5

? কখনও কখনও ত্রুটি খুব নির্বোধ হতে পারে

এখানে সমস্ত সমাধান চেক করার আগে নিশ্চিত হয়ে নিন যে আপনি সমস্ত বুনিয়াদি জিনিস আমদানি করেছেন

     import Foundation
     import UIKit

এটি বেশ সম্ভাবনা যে আপনি যখন বাইরে থেকে আপনার প্রকল্পে কিছু ফাইল আমদানি করেন, যা আমি একবার অভিজ্ঞ হিসাবে এই প্রাথমিক জিনিসটি মিস করতে পারি।


এটি আমার কাছে CLLocationManagerDelegate এর জন্য ঘটেছিল এবং আমাকে যা করতে হয়েছিল তা হ'ল আমি কেন 20 মিনিট সময় নষ্ট করব এমন উঘের মতো এই অন্য ফাইলটিতে করলোকেশন আমদানি করা ছিল।
ডেরেক

4

আমি এখানে প্রস্তাবিত অনেকগুলি সমাধান চেষ্টা করেছিলাম, তবে শেষ পর্যন্ত ফাইলটি মুছে ফেলা এবং এটি আবার তৈরি করে দিয়েছিলাম এবং এক্সকোডটি বিলম্বিত করা হয়েছিল: /


এটি আমার পক্ষেও কাজ করেছিল। রেফারেন্স সরানো, পরিষ্কার, বিল্ড করা এবং তারপরে ফাইলটি আবার যুক্ত করা।
andnil

ধন্যবাদ! এটি বেশ উদ্ভট। শুধু আমার জন্য কাজ করেছেন। পুরানো, অনুলিপি করা পুরানো কোডটিকে নতুন ফাইলে মুছে ফেলা হয়েছে, এমনকি পরিষ্কার / বিল্ড করতে হবে না।
টিমম্যান

4

এটি ঘটতে পারে যদি আপনি দুর্ঘটনাক্রমে প্যারামিটারের নামটি মূলধন করে যান এবং এটিকে বস্তুর মতো বলে থাকেন।

class func didRecieveData(BlockItems: [BlockItems])

3

এটি কাউকে সাহায্য করতে পারে।

আমি কোর ডেটা সহ নতুন পরীক্ষার প্রকল্প তৈরি করেছি যার নাম "কোরডাটা"। খুব শীঘ্রই আমি এনএসম্যানেজডঅবজেক্ট কনটেক্সট এবং অন্যান্য কোর ডেটা ক্লাসের জন্য "অঘোষিত ধরণের ব্যবহার" পেয়েছি। আমদানি করার, পর্যায়ক্রমে বিল্ডিং ইত্যাদির আরও বেশ কয়েকটি প্রচেষ্টার পরে আমি প্রকল্পটি মুছে ফেলেছি এবং "টেস্টিংকোরডাটা" নামে একটি নতুন শুরু করেছি এবং এটি সব ভালভাবে কাজ করেছে।

ক্লাসগুলির নামের মতো প্রকল্পগুলির নাম (পরীক্ষা) করবেন না


3

আপনার স্বাক্ষরে কোনও অবজেক্ট টাইপের মতো একই নামে কোনও ফাংশন থাকলে এটিও ঘটতে পারে। উদাহরণ স্বরূপ:

class func Player(playerObj: Player)

সংকলকটি বিভ্রান্ত হয়ে উঠবে (এবং যথাযথভাবে তাই) যেহেতু সংকলকটি প্রথমে স্থানীয়ভাবে অন্য ফাইলগুলি দেখার আগে ফাইলের মধ্যে দেখতে পাবে। সুতরাং এটি স্বাক্ষরটিতে "প্লেয়ার" এর দিকে তাকিয়ে মনে করে যে এটি এই সুযোগের কোনও বিষয় নয়, তবে একটি ফাংশন, তাই কিছু ভুল।

ক্লাস ফাংশনগুলিকে আমার বড় বড় করা উচিত নয় কেন এটি সম্ভবত একটি ভাল কারণ। :)


3

একটি ফ্রেমওয়ার্কে কোডটি রিফ্যাক্ট করার সময় আমি এক্সকোড 8 এ এই ত্রুটি বার্তাটি পেয়েছি, এটি বেরিয়ে আসে যে আমি ফ্রেমওয়ার্কে ক্লাসটি ঘোষণা করতে ভুলে গিয়েছিলাম public


2

হতে পারে আপনি কিছু "ফার্স্টনেমক্লাস" দিয়ে ক্লাস যুক্ত করেছেন এবং তার পরে ম্যানুয়ালি "রঙিনডটভিউ" নামকরণ করুন। ক্লিপবোর্ডে "রঙিনডটভিউ" শ্রেণীর সামগ্রী অনুলিপি করার চেষ্টা করুন, প্রকল্প থেকে "রঙিনডটভিউ" সরান এবং অ্যাগ্রিন যুক্ত করুন।

এই আইডি আমার কাছ থেকে একই সমস্যা স্থির।


2

আমার ক্ষেত্রে আমার দ্বারা করা একটি ভুল ছিল। আমি "ওএস এক্স> উত্স> কোকো ক্লাস" হিসাবে একটি নতুন ফাইল যুক্ত করেছি, "আইওএস> উত্স> কোকো টাচ ক্লাস" এর পরিবর্তে।


2

আমার ক্ষেত্রে, এটি একটি সাবক্লাস নামটি একেবারে পরের লাইনে ভিন্ন ধরণের ভেরিয়েবলের নাম হিসাবে ব্যবহৃত হওয়ার কারণে ঘটেছিল:

var binGlow: pipGlow = pipGlow(style: "Bin")
var pipGlow: PipGlowSprite = PipGlowSprite()

লক্ষ করুন যে লাইন 1 এ, পাইপগ্লো হ'ল সাবক্লাসের নাম (এসকেশাপ নোডের), তবে দ্বিতীয় লাইনে, আমি পাইপগ্লোর একটি পরিবর্তনশীল নাম হিসাবে ব্যবহার করছিলাম। এটি কেবলমাত্র খারাপ কোডিং শৈলীই ছিল না, তবে দৃশ্যত একেবারে নো-নো! একবার আমি দ্বিতীয় লাইনটি এতে পরিবর্তন করি:

var binGlow: pipGlow = pipGlow(style: "Bin")
var pipGlowSprite: PipGlowSprite = PipGlowSprite()

আমি আর ত্রুটিটি পাইনি। আমি আশা করি এটা কারো সাহায্যে লাগবে!


2

অ্যাপ্লিকেশনটির সাথে সম্পর্কিত সুইফট কোডটি পরীক্ষা করার সময়, প্রথমে নিশ্চিত হয়ে নিন যে পরীক্ষার লক্ষ্যটি নির্ভরতা হিসাবে অ্যাপ্লিকেশনটি তৈরি করছে। তারপরে, আপনার পরীক্ষায়, মডিউল হিসাবে অ্যাপ্লিকেশনটি আমদানি করুন। উদাহরণ স্বরূপ:

@testable import MyApplication

এটি সেই সুইফট অবজেক্টগুলিকে পরীক্ষার জন্য উপলব্ধ অ্যাপ্লিকেশনের অংশ হিসাবে তৈরি করবে।


2

আমার ক্ষেত্রে, এটি সুইফ্ট ফাইলগুলির পাঠ্য এনকোডিংয়ের কারণে হয়েছিল। একটি ফাইল 'স্পষ্টত কোনও এনকোডিং নেই' দেখিয়েছে এবং এটিকে 'ইউটিএফ -8' এ রূপান্তর করার পরে সমস্যা সমাধান হয়েছে।

এবং ফাইলটির পাঠ্য এনকোডিংটি স্পষ্ট না হওয়ার কারণটি হ'ল আমি অন্যান্য সুইফ্ট ফাইল থেকে সমস্ত কোড অনুলিপি করেছি।

কোনও সুস্পষ্ট এনকোডিং স্ক্রীনশট নেই

এখানে চিত্র বর্ণনা লিখুন

ইউটিএফ -8 স্ক্রিনশট

এখানে চিত্র বর্ণনা লিখুন


2

প্রকল্পটি পরিষ্কার করা আমার সমস্যার সমাধান করেছে।

পদক্ষেপ: পণ্য -> পরিষ্কার (বা শিফট + সিএমডি + কে)


1

আমার ক্ষেত্রে আমি কাস্টম সুইফট অবজেক্টের সাথে একটি টাইপ প্যারামিটার হিসাবে একটি পদ্ধতি যুক্ত করতে চেয়েছিলাম, এবং প্যারামিটারে আমি যে নামটি পরিবর্তনশীলকে দিয়েছিলাম সেটি কাস্টম অবজেক্ট শ্রেণীর নামের মতোই ছিল same

সমস্যাগুলি এরকম কিছু ছিল:

func moveBlob(**blob** : blob){
    ...code
}

গা bold় অক্ষরগুলির অংশটি অঘোষিত ধরণের ত্রুটির কারণ ঘটছিল


1

অন্যদের ভাল হিসাবে উল্লেখ করেছে এবং এই থ্রেড

"অনুলিপি বান্ডিল রিসোর্স" এ বিনাবিহীন সুইফ্ট ফাইলগুলির ব্যবহার সাহায্যের জন্য স্ক্রিন শট


1

অন্যদের মতো এটিও কিছু সম্পর্কিত নয় এমন কোড যা এর ফলে @testableক্ষতিসাধন করছে।

আমার পরীক্ষার টার্গেটে একটি উদ্দেশ্য-সি শিরোনাম ফাইল ছিল

@import ModuleUnderTest;

আমি এই লাইনটি সরিয়েছি (কারণ আমদানিটি আসলে অপ্রয়োজনীয় ছিল) এবং অলৌকিকভাবে @testableআবার কাজ শুরু করে।

আমি কেবল এটি ট্র্যাক করতে সক্ষম হয়েছি কিন্তু আমার প্রকল্প থেকে সমস্ত কিছু সরিয়ে এবং এটি ব্যর্থ হওয়া অবধি কিছুটা পিছনে এটিকে যুক্ত করেছিলাম। শেষ পর্যন্ত আমি কোডের সমস্যা লাইনটি পেয়েছি।


1

যদি আপনি এটি বিভিন্ন থেকে অ্যাক্সেস moduleবা Targetতারপর আপনি শুধু এটি প্রয়োজন publicএটা


1

যদি কেউ একই বোকা ভুল করে তবে আমি ...

আমি এই ত্রুটিটি পেয়েছিলাম কারণ আমার উত্স ফাইলটির নাম পরিবর্তন করার সময়, আমি ঘটনাক্রমে ফাইলের নামটি .থেকে অপসারণ করেছি এবং তাই সংকলকটি ফাইলটি সংকলনের উত্স হিসাবে নয়, সরল পাঠ্য ফাইল হিসাবে বিবেচনা করেছে।

সুতরাং আমি বোঝাতে চাইছিলাম ফাইলটির নাম পরিবর্তন করতে হবে MyProtocol.swift তবে দুর্ঘটনাক্রমে এর নামকরণ হয়েছে MyProtocolswift

এটি একটি সাধারণ ভুল, তবে সহজেই স্পষ্ট হয় নি যে এটিই যা চলছে।


1

সঠিক আমদানির প্রসারণ যোগ না করাও একটি সুস্পষ্ট মিস হতে পারে। আমার জন্য, আমি কেবল অগ্রাধিকার ইউআইকিট আমদানি করতে বাদ দিয়েছিলাম।


1

আমার পরিস্থিতি হ'ল আমি প্রকল্পের মধ্যে একটি নতুন ফাইল XXView.swift টেনে আনছি। এবং একটি ভিউ টাইপকে এক্সভিউভি হিসাবে ঘোষণা করুন তারপরে ত্রুটিটি "অঘোষিত ধরণের ব্যবহার ...."।

আমি কেবল পরীক্ষার টার্গেটে আমার XXView.swift যুক্ত করার চেষ্টা করি যা এটি ত্রুটির সমাধান করেছে solved তবে আমি চাই না যে আমার ইউআই ক্লাস পরীক্ষার লক্ষ্যে জড়িত।

অবশেষে, আমি আমার ভিউকন্ট্রোলারটিকে পরীক্ষার লক্ষ্যে ইতিমধ্যে পেয়েছি যা ঘটতে হবে না should (আমি মনে করি কারণ আমি একটি এক্সসিটিম্প্লেট দ্বারা ভিসি তৈরি করেছি তাই এটি স্বয়ংক্রিয়ভাবে পরীক্ষার লক্ষ্যে অন্তর্ভুক্ত হবে)

আমি পরীক্ষার লক্ষ্য থেকে ভিউ কন্ট্রোলারটিকে সরিয়ে ফেলি এবং তারপরে আমার এক্সভিউভিউ এখন পরীক্ষার লক্ষ্যবস্তুতে যুক্ত করার দরকার নেই।

উপসংহার: আপনার সমস্ত সম্পর্কিত ফাইলেরও পরীক্ষা লক্ষ্যটি পরীক্ষা করা উচিত না তা নিশ্চিত করুন।


1

এই ত্রুটিটিতে একটি ঘন্টা ব্যয় করার পরে আমি দেখতে পেলাম যে মডিউল ফাইলটি সদৃশ। অতিরিক্ত ফাইল মুছুন, এবং পরিষ্কার করতে + সিএমডি + কে শিফট করুন এবং ত্রুটিটি চলে গেছে।


এটি একটি মূ ?় প্রশ্ন হতে পারে তবে আপনি কি সে সম্পর্কে আরও ব্যাখ্যা করতে পারেন? ডুপ্লিকেট সুইফট ফাইলগুলির সাথেও, বা সদৃশ দলগুলি ইত্যাদির সাথে কি এটি ঘটে? এটি কাজ করেছে তবে আমি কেন এটি কাজ করে তা গ্রহণ করার চেয়ে এটি কেন কাজ করে তা সম্পর্কে আরও জানতে চাই। উপায় দ্বারা সমাধানের জন্য ধন্যবাদ!
কোডি ভোলারথ

1

আমার ক্ষেত্রে, বিষয়টি একটি নতুন classস্বীকৃতি না পেয়ে ছিল। আমি ক্লাসটি মুছে ফেলা এবং এটি পুনরায় যুক্ত করে সমস্যার সমাধান করেছি কিন্তু Watch App Extensionএবার নতুন ক্লাস তৈরি করার সময় বিকল্পটি পরীক্ষা করে দেখছি ।

এখানে চিত্র বর্ণনা লিখুন

দয়া করে মনে রাখবেন যে আমার অ্যাপ্লিকেশনটিতে আমার কাছে ওয়াচ অ্যাপের এক্সটেনশন রয়েছে।


ধন্যবাদ এবং আমার ক্ষেত্রে ঠিক ঠিক ফাইলটি যুক্ত করা দরকার Target
কোলেট্রাইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.