নির্মাণের সময় সুইফ্ট সংকলক বিভাগের ত্রুটি


101

আমার ফাইলে একটি (সুবিধাজনক) heightগণ্য সম্পত্তি যুক্ত করার কারণে সুইফ্ট সংকলকটি সেগফল্টের কারণ হয়ে উঠছে ... সম্ভবত এখানে কী ভুল হতে পারে?UIViewUIViewExtension.swift

0  swift                    0x00000001061e5608 llvm::sys::PrintStackTrace(__sFILE*) + 40
1  swift                    0x00000001061e5af4 SignalHandler(int) + 452
2  libsystem_platform.dylib 0x00007fff894da5aa _sigtramp + 26
3  libsystem_platform.dylib 0xb03939841e997c88 _sigtramp + 2504775416
4  swift                    0x00000001064c8bb9 swift::NominalTypeDecl::getMembers(bool) const + 41
5  swift                    0x00000001055efab9 swift::irgen::ClassMetadataLayout<(anonymous namespace)::FindClassMethodIndex>::addClassMembers(swift::ClassDecl*) + 329
6  swift                    0x00000001055e97b2 swift::irgen::emitVirtualMethodValue(swift::irgen::IRGenFunction&, llvm::Value*, swift::SILType, swift::SILDeclRef, swift::CanTypeWrapper<swift::SILFunctionType>, swift::ResilienceExpansion) + 434
7  swift                    0x00000001056550d3 swift::SILVisitor<(anonymous namespace)::IRGenSILFunction, void>::visit(swift::ValueBase*) + 42611
8  swift                    0x000000010564a266 swift::irgen::IRGenModule::emitSILFunction(swift::SILFunction*) + 8678
9  swift                    0x00000001055cb6f8 swift::irgen::IRGenModule::emitGlobalTopLevel() + 184
10 swift                    0x00000001056376e3 performIRGeneration(swift::IRGenOptions&, swift::Module*, swift::SILModule*, llvm::StringRef, llvm::LLVMContext&, swift::SourceFile*, unsigned int) + 1859
11 swift                    0x0000000105638033 swift::performIRGeneration(swift::IRGenOptions&, swift::SourceFile&, swift::SILModule*, llvm::StringRef, llvm::LLVMContext&, unsigned int) + 51
12 swift                    0x00000001055aa65a frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 4842
13 swift                    0x00000001055a935d main + 1533
14 libdyld.dylib            0x00007fff8a82e5fd start + 1

 

1.  While emitting IR SIL function @_TFCSo6UIViewg6heightSd for 'anonname=0x7ff422892fd0' at <path redacted>/UIViewExtension.swift:60:5
<unknown>:0: error: unable to execute command: Segmentation fault: 11
<unknown>:0: error: swift frontend command failed due to signal (use -v to see invocation)
Command /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254

এটি ক্র্যাক করার জন্য যদি আরও তথ্যের প্রয়োজন হয় তবে কেবল মন্তব্য করুন। ধন্যবাদ!

সম্পাদনা করুন:

এখানে সম্পর্কিত .xcodeproj যা এই প্রশ্নের সংকলক ত্রুটি প্রদান করে। এখানে ডাউনলোড করুন


7
সংকলকগুলি সেগফোল্ট করা উচিত নয়। এটি যদি নতুন সমস্যা হয় তবে একটি বাগ রিপোর্ট দাখিল করুন।
করলি হরবাথ

4
সংকলক বাগের মতো দেখতে। আপনার এটিকে অ্যাপলের কাছে রিপোর্ট করা উচিত যাতে তারা এটিকে বাছাই করতে পারেন।
চক

11
কম্পাইলারটি বাম এবং ডানদিকে সেগফোল্টিং করা হয়েছে কারণ আমি একটি উদ্দেশ্য-সি প্রকল্পকে সুইফটে স্থানান্তরিত করছি। অন্তত বলাই হতাশাব্যঞ্জক।
অ্যালেক্সারসন

4
@ আলেকারসন আমি ধরে নিয়েছি যে রিলিজ সংস্করণটি আরও ভালভাবে কাজ করবে তবে আপনি যদি বাগগুলি খুঁজে পান তবে আমি তাদের প্রতিবেদন করব যেহেতু এটিই কেবলমাত্র মুক্তির আগেই ঠিক হয়ে যাবে।
জোছিম ইসাকসন

6
আমি ইচ্ছে করেই ভাবছিলাম সুইফট গেটের ঠিক বাইরে ব্যবহার করতে প্রস্তুত ছিল। অপেক্ষায় চুষে! :)
অ্যালেক্সারসন

উত্তর:


75

আমার এই ত্রুটি ছিল কারণ আমি এটি করছিলাম:

if(currentMeal?.State == .Deleted){

}

পরিবর্তে

if(currentMeal!.State == .Deleted){

}

সুতরাং আমি মনে করি যে শর্তটি এই ত্রুটি ঘটাতে পারে তবে wচ্ছিক মোড়কে না not


4
আমার জন্যও এটি কারণ ছিল। তবে কি এটা সঠিক হতে হবে? এটি কেবল একটি সংকলক বাগ এটি
DeFrenZ

একই। Ptionচ্ছিক এনাম চেক। আশা করি তারা এটি ঠিক করেছেন
Mente

সঠিক কোডটি হ'ল: যদি (বর্তমানমিল.স্টেট ==। মুছে ফেলা) {Sw হিসাবে সুইফ্ট সহায়কভাবে ওভারলোডগুলি == সমতুল্য দুটি বিকল্পের জন্য = ফজহনের পোস্টটি বেশ বিপজ্জনক।
ম্যাটিওহে

4
এটি একটি সংকলনের ত্রুটি সম্পর্কে, ভেরিয়েবলের আগে যাচাই না করা হলে আমি যে কোডটি করেছি তা বিপজ্জনক। আপনার কোড সম্পর্কে কী যদি বর্তমানমিল শূন্য হয়? এটা কি একই? আমার কোডটি আপনার দয়া করে কেন আমার চেয়ে বেশি বিপজ্জনক তা আপনি আমাকে ব্যাখ্যা করতে পারেন? দ্রুত ব্যবহার না করে swচ্ছিক সুবিধা নেবেন? " ?
ফিজোহান

ধন্যবাদ, এটি আমার ক্ষেত্রেও। সুইফট আমাকে সমস্ত পথে অপ্রীতিকর চমক দিচ্ছে, তবে এটি সীমা ছাড়িয়ে যাওয়ার।
কোডব্রু

26

আপনি যখন সুইফটে একটি সংকলক সেগফল্টে চলে যান, আপনি কোনও সহজ লাইন নম্বর এবং ত্রুটি বার্তা পাবেন না। আপনি কীভাবে সমস্যাটি ট্র্যাক করতে পারেন তা এখানে:

  1. SegFaultDebugger.swiftআপনার প্রকল্পে ডাকা একটি নতুন ফাইল তৈরি করুন ।
  2. এই নতুন ফাইলে, ক্লাসটির জন্য একটি এক্সটেনশনটি সংজ্ঞায়িত করুন যা আপনাকে সমস্যা দিচ্ছে।
  3. মূল ফাইল থেকে একাধিক পদ্ধতির দলকে সরান SegFaultDebugger.swift
  4. সংকলন

এই সময়ে, তিনটি জিনিসের একটি ঘটে:

  • আপনি এখনও মূল ফাইলে সেগফল্টটি পাবেন : পদ্ধতিগুলি SegFaultDebugger.swiftমূল ফাইলটিতে পিছন থেকে সরান এবং পদ্ধতিগুলির একটি ভিন্ন সেটকে সরান SegFaultDebugger.swift। পুনরাবৃত্তি
  • আপনি এতে একটি সেগফল্ট পাবেনSegFaultDebugger.swift : দুর্দান্ত! সেগফল্টকে একটি নির্দিষ্ট পদ্ধতিতে পিন করতে এখন বাইনারি অনুসন্ধান ব্যবহার করুন যতক্ষণ না আপনি নির্ধারণ করতে পারেন যে কোনটি নির্মাণের কারণে এটি তৈরি করছে।
  • আপনি অর্থপূর্ণ সংকলক ত্রুটি পান : দুর্দান্ত! ত্রুটিগুলি ঠিক করুন। সবকিছু একবার সংকলিত হয়ে গেলে, আপনার পদ্ধতিগুলি মূল ফাইলটিতে ফিরে যান।

4
ধন্যবাদ! এটি আমার মাথা আঁচড়ানোর কয়েক ঘন্টা পরে সাহায্য করেছিল।
dejavu89

4
এটি খুব দরকারী ছিল! আমার ক্ষেত্রে, আমার একটি এক্সটেনশনে আমার এনএসফ্যাচড্রেসাল্টস কন্ট্রোলারডেলিগেট ছিল এবং এটি মূল শ্রেণীর ব্লকে ফিরে যাওয়ার জন্য যথেষ্ট ছিল।
মিকেল গ্রান

@ মিকায়েলগ্রান - আপনি কি এর উপর প্রসারিত করতে পারেন? এক্সটেনশনে আপনার ঠিক কী ছিল?
রায়ানজেএম

তবে আপনি কীভাবে জানবেন যে কোন ক্লাসটি আপনাকে সমস্যাগুলি দিচ্ছে?
শ্রদ্ধেয়

@ তিরিভেরেন্ড আপনি যদি নিশ্চিত না হন তবে আপত্তিজনক ফাইলটিতে আপনাকে প্রতিটি শ্রেণি চেষ্টা করতে হবে। তবে সুইফটকের কয়েক বছরে সত্যিই সেগফ্ল্টের সমস্যা হয়নি - নিশ্চিত নয় যে আমার উত্তরটি আরও প্রাসঙ্গিক।
বিল

12

আমার প্রোটোকলগুলির একটি এবং ভুল টাইপ করা এবং alচ্ছিক ধরণের যুক্তি প্রসারিত করার সময় আমি এই ত্রুটিটি পেয়েছি।

protocol SomeProtocolName: class {
    var someProtocolVariable: String { get set }

    func someProtocolFunction(someProtocolVariable: String)
}

// MARK:
extension SomeProtocolName {
    func someProtocolFunction(someProtocolVariable: String?) {
        self.someProtocolVariable = someProtocolVariable
    }
}

Stringপ্রোটোটাইপ এবং String?এক্সটেনশনে ফাংশন আর্গুমেন্টের পার্থক্যের কারণে সেগমেন্টেশন ফল্ট 11 হয়েছিল


4
আমি এটা পেয়েছি। দেখে মনে হচ্ছে অ্যাপলের theirচ্ছিক টাইপিংয়ে কিছু সমস্যা রয়েছে। একটা বড় বিষয় হ'ল কখন! একটি ভেরিয়েবল টাইপের অভ্যন্তরে ব্যবহৃত হয়। এটি ডিফল্টরূপে অ-alচ্ছিক, তবে সংকলক বিভ্রান্ত হয়।
ব্যবহারকারী1122069

@ ব্যবহারকারী1122069 সম্মত হন, প্রোটোকলগুলিতে কিছু সমস্যা রয়েছে। আশা করি পরবর্তী সংস্করণগুলির সাথে এই সমস্যাগুলি ঠিক হয়ে যাবে।
ভিক্টর.ভ্যাসিলিকা

আমি প্রোটোকল সম্পর্কে কথা বলছিলাম না, সাধারণভাবে। আমি কী শিখলাম! একটি ভেরিয়েবলের ভিতরে রয়েছে তবে আইডিই এবং সংকলক প্রায়শই সঠিক ত্রুটি পেতে ব্যর্থ হয়!
ব্যবহারকারী1122069

@ user1122069 আমার খারাপ, শ্রীযুক্ত।
ভিক্টর.ভ্যাসিলিকা

অ্যারেতে প্রচুর আইটেম যুক্ত করার সময় আমার সাথে এটি ঘটেছিল
aguilarpgc

9

আমারও এই ত্রুটি ছিল এবং আমি এটি এটি ঠিক করেছিলাম:

আপনার প্রকল্পটি পরীক্ষা করে দেখুন এবং কোন ফাইল দুটিবার ব্যবহৃত হয় তা খুঁজে বের করুন এবং একটি মুছুন, বা মুছুন এবং সেগুলি পুনরায় যুক্ত করুন।

আমার এক্সকোডে ত্রুটিগুলি:

: 0: ত্রুটি: ফাইলের নাম "অ্যাট্রিবিউটেড স্ট্রিং.সুইফ্ট" দু'বার ব্যবহার হয়েছে: '/ ব্যবহারকারী /.../CNJOB/CNJOB/AttributesString.swift' এবং '/ ব্যবহারকারী /.../CNJOB/CNJOB/AtributesString.swift'

: 0: দ্রষ্টব্য: ফাইলের নামগুলি একই নামের সাথে ব্যক্তিগত ঘোষণাপত্রের পার্থক্য করতে ব্যবহৃত হয়

: 0: ত্রুটি: ফাইলের নাম "APIClient.swift" দুইবার ব্যবহৃত হয়েছে: '/ ব্যবহারকারী /.../CNJOB/CNJOB/APIClient.swift' এবং '/ ব্যবহারকারী /...//CNJOB/CNJOB/APIClient.swift'

: 0: দ্রষ্টব্য: ফাইলের নামগুলি একই নামের সাথে ব্যক্তিগত ঘোষণাপত্রের পার্থক্য করতে ব্যবহৃত হয়

কমান্ড / অ্যাপ্লিকেশনস / এক্সকোড 3. অ্যাপ্লিকেশন / সামগ্রী / ডেভেলপার / টুলচেইনস / এক্সকোডডেফল্ট.এক্সটুলচেইন / এসআর / বিন / সুইফট্যাক প্রস্থান কোড 1 সহ ব্যর্থ হয়েছে


8

এক্সকোড In-এ, আপনি ডিবাগ নেভিগেটরে ত্রুটিটি ক্লিক করতে পারেন এবং আপনাকে ক্র্যাশের একটি প্রসারিত দৃশ্য দেখানো হবে। ডানদিকে হ্যামবার্গার বোতামে ক্লিক করা ত্রুটিটি প্রসারিত করে এবং আপনি যদি প্রসারিত ত্রুটি বার্তার নীচে সমস্ত উপায়ে স্ক্রোল করেন তবে আপনি দেখতে পাবেন যে এটি কোথা থেকে এসেছে।

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

আমার জন্য, আমি সেগুলির দুটি বিভাগের ত্রুটি ত্রুটি করেছি। উপরের ছবিতে, প্রথমটি হ'ল ধসের সময় দেখতে কেমন লাগে, দ্বিতীয়টি হ্যামবার্গার বোতামটি প্রসারিত করার পরে। প্রসারিত ধূসর বাক্সের একেবারে নীচে আপনি একটি বার্তা দেখতে পাবেন যাতে বলা হয়েছে যে সংকলকটি যেখানে ক্র্যাশ হয়েছিল।

তবে নোট করুন যে ত্রুটি বার্তাটি অনেক সময় পর্যাপ্ত তথ্যযুক্ত নাও হতে পারে, তাই এটি কোথায় ক্র্যাশ হয়েছে তা আপনাকে জানায়, কেন এবং কীভাবে এটি ঠিক করতে হবে তা সবসময় বলে না। এই ত্রুটি থেকে মুক্তি পাওয়া এখনও অনুমান করার মতো বিষয়।


4
নেভিগেটর থেকে ত্রুটিগুলি সনাক্ত করতে সক্ষম হয়েছিল। ধন্যবাদ, এটি আমাকে আমার ত্রুটিগুলি সমাধান করতে সহায়তা করেছে!
বিশাল চন্দ্রন

5

ভবিষ্যতের এক্সকোড / সুইফ্ট বিল্ডে সমস্যাটি স্থির না হওয়া পর্যন্ত আমি একটি সাধারণ কাজটি আবিষ্কার করেছি:

  • .swiftএটি যে ফাইল ব্যবহার করা হচ্ছে তাতে সমস্যাটির কারণ হিসাবে সমস্ত এক্সটেনশানগুলি কেবল রাখুন ।

উদাহরণস্বরূপ প্রকল্পের আপনার দেওয়া সালে বিষয়বস্তু স্থান UIViewExtension.swift এবং CALayerExtension.swift উপরে AppDelegate.swift

আশা করি সমস্যাটি সমাধান না হওয়া পর্যন্ত এটি আমাদেরকে ওয়ার্কিং সুইফট কোডটি লিখতে পারে।


4

আমার হিসাবে, privateস্ট্যাটিক ভার্স ফিক্সড ক্ল্যাং ক্র্যাশে যুক্ত:

private static var taskId = 0

2

এই জাতীয় বিবৃতিতে আমার সংকলক বিভাগের ত্রুটি ছিল:

someFunction(isFlagged ? "String1" : "String2")

আমি পরিবর্তে একটি if-অন্য বিবৃতি দিয়েছিলাম এবং এটি কার্যকর।


4
সুইফট 3: এই উত্তরটি অনেক প্রকল্পে সেগমেন্টটিও ফল্ট 11 সমাধান করে।
আলেসান্দ্রো ওর্নানো

বাহ, অবিশ্বাস্য। এই সমস্ত সমস্যা সহ সুইফ্ট সংকলকটি আলফা সংস্করণের মতো অনুভব করে। এই জন্য আপনাকে ধন্যবাদ.
টিজিও

2

যদি আপনি সম্পত্তি হিসাবে একটি মোড়কযুক্ত বুলের সাথে শর্ত ঘোষণা করেন তবে আপনারও এই সমস্যা হতে পারে


1

আমার ক্ষেত্রে, স্ট্রিং ইন্টারপোলেশন চলাকালীন একটি ভুল জায়গায় স্থাপন করা কোলন আমার ভেঙে গেছে (এক্সকোড 6.1.1)।

উদাহরণ:

println("\(value1:value2)") 

যখন আমি বলতে চাইছিলাম:

println("\(value1) : \(value2)")

1

যখন আমি প্যারেন্ট ক্লাস থেকে দুর্বল ভেরিয়েবলকে ওভাররাইড করার চেষ্টা করি তখন এই ত্রুটিটি আমার কাছে ঘটে।

বেস শ্রেণিতে:

weak var stripeViewDelegate : StripeViewDelegate? = nil    

উত্পন্ন শ্রেণি:

override weak var stripeViewDelegate : StripeViewDelegate? = nil {
    didSet {
        self.stripeView.delegate = stripeViewDelegate

    }

ত্রুটিটি অদৃশ্য হয়ে গেছে যখন আমি =nilউত্পন্ন শ্রেণি থেকে সরিয়েছি ।


1

আমি আজ কিছু ব্যতিক্রম ধরা

class func createByAny(instance: Any?) -> ApiCollectionResponse { ... }

এবং এটি এটি সমাধান করেছে:

class func createByAny(instance: Any) -> ApiCollectionResponse { ... }

কারণ "যে কোনও" টাইপ কোনও প্রকারের ইভেন্ট "শূন্য", "যেকোনওবজেক্ট", alচ্ছিক, ... :) এটি alচ্ছিক হতে পারে না, এটি ইতিমধ্যে alচ্ছিক।

typealias Any = protocol<>

আমার
কেসটি

1

আপনি ভুলক্রমে এর নামের সাথে মিলে যাওয়া কোনও প্রকারের সাথে ভেরিয়েবল ঘোষণা করলেও এই ত্রুটিটি ঘটে:

    var sectionGroup: sectionGroup? { ... }

আপনি যদি অ্যাপলের নামকরণ কনভেনশনটি অনুসরণ করেন এবং প্রকারের জন্য প্রথম আপার কেস লেটার ব্যবহার করেন তবে এটি কোন সমস্যা হয়ে দাঁড়াবে না। এটি সম্ভবত এটি কারণেই অ্যাপল হোঁচট খাচ্ছে না। আরও আপনার উত্তরটি @ এমিনহোটব
কিওয়ার্টি_সো 23'15

1

কোনও অপারেটর ফাংশনে বহিরাগত জেনেরিক ধরণের কারণে এই ত্রুটিটি ছড়িয়ে পড়ে

func ==<T>(lhs: Foo, rhs: Foo) -> Bool {
  return lhs.bar == rhs.bar
}

আমার ক্ষেত্রে, সরানো সমস্যার <T>সমাধান করেছে।


এখানে একই সমস্যা, সাধারণভাবে মনে হয় যে জেনেরিকগুলি যা প্রকৃতপক্ষে ব্যবহৃত হয় না তা সংজ্ঞায়িত করার ফলে এই ত্রুটি ঘটবে।
কেভিন আর

1

আমার ক্ষেত্রে আমি একটি structভিতরে একটি ঘোষণা ছিল funcstructশ্রেণিতে স্তরে স্থানান্তরিত হওয়া সমস্যার সমাধান করেছে।

এখন যেহেতু আমি এটি লিখছি আমার মনে structআছে funcএর আগেও ভিতরে ভিতরে সমস্যা ছিল । এটি সেগমেন্টেশন ত্রুটি ছাড়া অন্য কিছু ছিল (যা মনে হয় সুইফট ১.২ বিটা দিয়ে কুখ্যাত হয়ে গেছে)। ওএমজি অ্যাপল, আপনি সেখানে কী করছেন?


আমার স্ট্রাক্টে 3 টি ভেরিয়েবল ছিল এবং এটি দুর্দান্ত কাজ করেছিল, 4 তম যোগ করে সেগমেন্টেশন ফল্ট ইস্যু সৃষ্টি করে। ক্লাসে স্ট্রাক্ট পরিবর্তন করা আমার জন্য এটি সমাধান করেছে
এহাব আমের

1

আমার ক্ষেত্রে, এই ত্রুটি কারণ আমি ভেরিয়েবলের জন্য ক্লাসের নাম ব্যবহার করি

var MYClass : MYClass {
    get {
        return.....
    }
}

এবং এটি আমার সমস্যার সমাধান করে

var myClass : MYClass {
    get {
        return.....
    }
}

1

আমি আমার ক্ষেত্রে, যখন আমি প্রোটোকলটিতে স্থির সূচনাটি ভুল করি তখন এটি ঘটেছিল। আমি কাছাকাছি যাওয়ার একটি উপায় খুঁজে পেয়েছি, তবে সংকলকটি নির্মাণের সময় সেগমেন্টেশন ত্রুটি কখনও তৈরি করা উচিত নয়

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

//file1
import Foundation
protocol NamedSegues {
    func  executeSegueWithId(id: String) -> Void
    static func getDefault() -> NamedSegues  // This was required because of init requirement in CustomCellView
}


//file2
class CustomController: UITableViewController, NamedSegues {
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCellWithIdentifier("CustomCellID", forIndexPath: indexPath ) as! CustomCellView

        // Configure the cell...
       //App logic...

        cell.parent = self
}

 //Mark: NamedSegues
     func executeSegueWithId(id: String) ->() {
        NSLog("Received callback to execute segue: \(id)")
        //
    }

    static func getDefault() -> NamedSegues { // I think this must be where it threw up.
        return self as! NamedSegues
    }

}


//file3

import UIKit

class CustomCellView: UITableViewCell {

    var id: String = "NoName"
    var parent: NamedSegues = NamedSegues.getDefault() // This is where it was needed.


override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        NSLog("Touched id: \(id)")


             parent.executeSegueWithId(id) // This is where parent was used.
     }
}

আমি ব্যবহার করে এটি কাছাকাছি পেয়েছিলাম?

প্রোটোকল ফাইলে, ফাইল 1: কাস্টমকন্ট্রোলার ফাইল 2 এ গেটডিফল্ট () এর ঘোষণা মুছুন: গেটডিফল্টের প্রয়োগ মুছুন। কাস্টমসিলভিউতে, ফাইল 3:

    var parent: NamedSegues?
    ...
    parent?.executeSegueWithId(id)

সংকলকটি এটি ধরা উচিত ছিল এবং নির্মাণের সময় সেগমেন্টেশন ত্রুটি নিক্ষেপের পরিবর্তে কিছু ত্রুটি বার্তা দেওয়া উচিত!


1

মনে হচ্ছে সুইফট 2 সংকলক সম্ভবত প্রাইম-টাইমের জন্য বেশ প্রস্তুত ছিল না! যদি এই কাউকে সহায়তা করে তবে আমি সেগমেন্টেশন ত্রুটি পাচ্ছিলাম: 11 একটি ক্লোজার শিরোনামের মধ্যে ভেরিয়েবল টাইপের সাথে মিল নেই, বিশেষত পার্স পদ্ধতিতে PFQuery.query.findObjectsInBackgroundWithBlock,।

আপনি এখানে আরও বিশদে বিশদটি দেখতে পারেন: https://github.com/ParsePlatform/Parse-SDK-iOS-OSX/issues/280


1

@ ফাজান যেমন বলেছিলেন, এটি আমার জন্য একটি alচ্ছিক আন-র্যাপিং সম্পর্কিত একটি সমস্যা ছিল ( এক্সকোড .0.০ বিটা and এবং এক্সকোড both উভয়ই ভেঙে গেছে)। আমার ক্ষেত্রে, আমি ঐচ্ছিক (ঐচ্ছিক unwrapping হয়নি আমার পরান বন্ধ ডবল ছিল ?? বর্ণনাকারী হবে। ব্যবহার করে এলইটি সমস্যা সমাধান

দ্বিগুণ causingচ্ছিক কারণ বিভাজন ত্রুটি


1

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

আমার ক্ষেত্রে, আমি বাস্তবায়নে একটি নতুন প্যারামিটার যুক্ত করেছি (এক্সটেনশনে) তবে প্রোটোকলটিতে পদ্ধতির স্বাক্ষরে এটি যুক্ত করতে ভুলেও গিয়েছি।


1

আমার ক্ষেত্রে, আমি একটি বৈকল্পিক পরামিতি পরে একটি ফাংশন প্যারামিটার যোগ করার চেষ্টা করেছি।

প্যারামিটার সিকোয়েন্সকে বিপরীত করা এবং পরামিতি তালিকার ভ্যারিয়্যাডিক প্যারামিটারটিকে সর্বশেষ পরামিতি তৈরি করা এটি স্থির করে।


1

এটি সাধারণত ঘটে যখন সংকলকটির কাছে কোনও বিবৃতি বা কোনও ভেরিয়েবলের স্থিতির গ্যারান্টি / নির্ধারণের জন্য পর্যাপ্ত তথ্য (আপনি যা ভাবেন তা সত্ত্বেও) না থাকে।

উদাহরণস্বরূপ, কল্পনা করুন যে আপনার কাছে টাইপের একটি শব্দ রয়েছে [স্ট্রিং: স্ট্রিং] যা আপনি কী হিসাবে নগরীর নামের সাথে এবং এর সাথে সম্পর্কিত জিপ কোড / পোস্ট কোডগুলির একটি কমা দ্বারা পৃথক তালিকা তৈরি করেছেন।

কল্পনা করুন যে আপনার কোডের কোথাও আপনি সংশ্লিষ্ট কোডগুলির তালিকা আপডেট করতে চান:

myDict[town] += newZipCode + ","

এই ক্ষেত্রে, সংকলকটি townঅভিধানে নাও থাকতে পারে বলে সেগমেন্টেশন ত্রুটি দিয়ে প্রতিক্রিয়া জানাবে এবং তাই এটি গ্যারান্টি দিতে পারে না যে উপরের বিবৃতিটির একটি বৈধ মান থাকবে।

এটি সমাধানের জন্য, আপনার বর্তমান অবস্থা myDict[town]পৃথক ভেরিয়েবলের মধ্যে সংরক্ষণ করা উচিত যা আপনাকে কেসটি পরিচালনা করতে দেয় key not in dictএবং তারপরে প্রদত্ত কীটির জন্য মান আপডেট করতে পারে:

myDict[town] = guaranteedValue + "," newZipCode + ","

দুর্ভাগ্যক্রমে, মূল কারণটি নির্ধারণ করা সর্বদা সহজ নয় তাই আমি আশা করি যে এই সাধারণ উদাহরণটি সহায়তা করে।


1

একটি প্রোটোকল একটি alচ্ছিক ভেরিয়েবল ঘোষণা করার সময় সুইফট ৩.০ (এক্সকোড ৮.১) এই সমস্যাটি প্রদর্শন করে এবং কোনও প্রয়োগকারী সেই অলস সূচনাযুক্ত হিসাবে চলকটি প্রয়োগ করে।

বাগ এখানে প্রতিবেদন করা হয়েছে: https://bugs.swift.org/browse/SR-1825


1

এক্সকোড 8.2।

যোগ করার পদ্ধতি @nonobjcএক্সটেনশন ঘটাচ্ছে সেগমেন্টেশন ফল্ট মধ্যে প্রোটোকল বাস্তবায়ন। @nonobjcপ্রোটোকল প্রয়োগ বাস্তবায়ন শ্রেণীর প্রয়োগে সরান ।


1

আমার ক্ষেত্রে অপরাধী ঘটনাক্রমে একটি ক্রিয়াকলাপটি একটি ভার্চুয়াল আর্গুমেন্টের সাথে একটি অ্যারের আর্গুমেন্টের প্রত্যাশায় একটি ক্রিয়াকে ওভারলোড করে :

public required init(_ args: Node...) {
}

সুপারক্লাসটি যখন এটিটিকে অ্যারে হিসাবে সংজ্ঞায়িত করেছিল:

public required init(_ args: [Node]) {
}

0

আমার জন্য নিম্নলিখিতটি একটি alচ্ছিক হওয়ার সময় সেগফল্টের কারণ হয়েছিল type:

switch type {
    case .aType:
        // Do Something
    default:
        break
}

এবং এটি এটি সমাধান করেছে:

switch type {
    case .Some(.aType):
        // Do Something
    default:
        break
}

0

আমি কাস্টম UITableViewController এ নিম্নলিখিত পদ্ধতি স্বাক্ষর সহ এই ত্রুটি পেয়েছি।

func filterContentForSearchText(searchText: String)

এতে পরিবর্তন:

func filterContentForSearchText(searchText: String!)

সমস্যা সমাধান।


0

এক্সটেনশনে আমারও একই সমস্যা ছিল। আমার এক্সটেনশনে দুটি সুবিধাপূর্ণ প্রাথমিককরণ ছিল:

convenience init(context: NSManagedObjectContext) {
    let entityDescription = NSEntityDescription.entityForName("PropertyEntity", inManagedObjectContext: context)!
    self.init(entity: entityDescription, insertIntoManagedObjectContext: context)
}

convenience init(dictionary: NSDictionary, context: NSManagedObjectContext) {
    self.init(context: context)
    property1 = (dictionary["key"] as? String) ?? ""
    // More properties...
}

ত্রুটি থেকে মুক্তি পাওয়ার জন্য আমি একটি উদাহরণ পদ্ধতির মানচিত্র (অভিধান: এনএসডি অভিধান) যুক্ত করেছি এবং সেগমেন্টেশন ত্রুটি ত্রুটি অদৃশ্য হয়ে গেছে।

convenience init(dictionary: NSDictionary, context: NSManagedObjectContext) {
    self.init(context: context)
    map(dictionary)
}

0

আমার জন্য সমস্যাটি ছিল আমার আর্কিটেকচারকে মান হিসাবে সেট করা হয়নি। আমি আই 386 বা কিছু যুক্ত করেছিলাম, কেবল এটি ডিফল্ট এক্সকোড্রপোজেক্ট খিলানে সেট করে রেখেছি এবং এটি সূক্ষ্মভাবে সংকলিত হয়েছে।


0

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

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