In same struct, both of the below runs fine when used individually :
HStack{
ForEach(nam.sampleType.indices){sat in
ForEach(picture.indices){pic in
if(picture[pic].id == nam.sampleType[sat].testSampleTypeId){
HStack{
ImageLoader(urlString: picture[pic].fileName)
.frame(maxWidth:.infinity, alignment: .leading)
.fixedSize(horizontal: false, vertical: true)
}
}
}}
}.padding(.leading,24)
.padding(.bottom,6)
this too
HStack{
Text("Sample Type")
.font(.system(size: 12))
.foregroundColor(.red)
Divider()
.padding(.leading,18)
ForEach(nam.sampleType.indices){sam in
Text("\(sam+1). " + "\(nam.sampleType[sam].sampleName)")
.font(.system(size:10))
.foregroundColor(.blue)
ForEach(picture.indices){pac in
if(picture[pac].id == nam.sampleType[sam].testSampleTypeId){
ImageLoader(urlString: picture[pac].fileName)
.frame(maxWidth:.infinity, alignment: .leading)
.fixedSize(horizontal: false, vertical: true)
}
}}
}
But when used together as below :
struct : Menu View {
@State var response : [DetailResponse]
@State var picture : [LinkResponse]
var body: some View{
ScrollView(.vertical){
ForEach(response){nam in
VStack{
Text("Sample Type")
.font(.system(size: 12))
.foregroundColor(.red)
Divider()
.padding(.leading,18)
ForEach(nam.sampleType.indices){sam in
Text("\(sam+1). " + "\(nam.sampleType[sam].sampleName)")
.font(.system(size:10))
.foregroundColor(.blue)
}}
HStack{
ForEach(nam.sampleType.indices){sat in
ForEach(picture.indices){pic in
if(picture[pic].id == nam.sampleType[sat].testSampleTypeId){
HStack{
ImageLoader(urlString: picture[pic].fileName)
.frame(maxWidth:.infinity, alignment: .leading)
.fixedSize(horizontal: false, vertical: true)
}
}
}}
}.padding(.leading,24)
.padding(.bottom,6)
}}
The compiler throws "The compiler is unable to type-check this expression in reasonable time.." error.
Below is the model
struct PriceDetailResponse:Codable{
let success:Bool
let message:String
let response:[DetailResponse]
enum CodingKeys: String, CodingKey{
case success = "IsSuccess"
case message = "Message"
case response = "ResponseData"
}}
struct DetailResponse:Codable, Identifiable{
var id: Int{testId}
let testId:Int
let testMainName:String
let testPackage:[TestListPackage]
let sampleType:[SampleList]
enum CodingKeys: String, CodingKey{
case testId = "TestId"
case testMainName = "TestName"
case testPackage = "TestListForPackage"
case sampleType = "SampleTypeList"
}}
struct SampleList:Codable, Identifiable{
var id:Int{packageId}
let testSampleTypeId : Int
let sampleName : String
let packageId : Int
enum CodingKeys: String, CodingKey{
case testSampleTypeId = "TestSampleTypeId"
case sampleName = "SampleName"
case packageName = "PackageName"
case packageId = "PackageId"
}
struct SampleImageLink:Codable{
let success:Bool
let message:String
let linkResponse:[LinkResponse]
enum CodingKeys: String, CodingKey{
case success = "IsSuccess"
case message = "Message"
case linkResponse = "ResponseData"
}}
struct LinkResponse:Codable,Identifiable{
var id:Int
let fileName:String
enum CodingKeys: String, CodingKey{
case id = "Id"
case fileName = "FileName"
}}
why this is happening...requirement is all sample Names than Image not sample Name Image together which is happening if used together in a single stack