diff --git a/docs/source/Tutorial.md b/docs/source/Tutorial.md
index 041e1d99f..9b8010006 100644
--- a/docs/source/Tutorial.md
+++ b/docs/source/Tutorial.md
@@ -1715,15 +1715,15 @@ can serialize the monster itself:
~~~{.swift}
let orc = Monster.createMonster(
- fbb: &builder,
- pos: Vec3(x: 1, y: 2, z: 3),
+ &builder,
+ pos: MyGame_Sample_Vec3(x: 1, y: 2, z: 3),
hp: 300,
- name: name,
- inventory: inventoryOffset,
+ nameOffset: name,
+ inventoryVectorOffset: inventoryOffset,
color: .red,
- weapons: weaponsOffset,
+ weaponsVectorOffset: weaponsOffset,
equippedType: .weapon,
- equipped: axe)
+ equippedOffset: axe)
~~~
diff --git a/samples/monster_generated.swift b/samples/monster_generated.swift
index 4400c5af2..93f958712 100644
--- a/samples/monster_generated.swift
+++ b/samples/monster_generated.swift
@@ -137,13 +137,13 @@ public struct MyGame_Sample_Monster: FlatBufferObject {
pos: MyGame_Sample_Vec3? = nil,
mana: Int16 = 150,
hp: Int16 = 100,
- offsetOfName name: Offset = Offset(),
- vectorOfInventory inventory: Offset = Offset(),
+ nameOffset name: Offset = Offset(),
+ inventoryVectorOffset inventory: Offset = Offset(),
color: MyGame_Sample_Color = .blue,
- vectorOfWeapons weapons: Offset = Offset(),
+ weaponsVectorOffset weapons: Offset = Offset(),
equippedType: MyGame_Sample_Equipment = .none_,
- offsetOfEquipped equipped: Offset = Offset(),
- vectorOfPath path: Offset = Offset()
+ equippedOffset equipped: Offset = Offset(),
+ pathVectorOffset path: Offset = Offset()
) -> Offset {
let __start = MyGame_Sample_Monster.startMonster(&fbb)
MyGame_Sample_Monster.add(pos: pos, &fbb)
@@ -188,7 +188,7 @@ public struct MyGame_Sample_Weapon: FlatBufferObject {
public static func endWeapon(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end }
public static func createWeapon(
_ fbb: inout FlatBufferBuilder,
- offsetOfName name: Offset = Offset(),
+ nameOffset name: Offset = Offset(),
damage: Int16 = 0
) -> Offset {
let __start = MyGame_Sample_Weapon.startWeapon(&fbb)
diff --git a/samples/sample_binary.swift b/samples/sample_binary.swift
index bd9b5c0da..889bc980a 100644
--- a/samples/sample_binary.swift
+++ b/samples/sample_binary.swift
@@ -46,14 +46,14 @@ func main() {
let orc = Monster.createMonster(
&builder,
- structOfPos: MyGame_Sample_Vec3(x: 1, y: 2, z: 3),
+ pos: MyGame_Sample_Vec3(x: 1, y: 2, z: 3),
hp: 300,
- offsetOfName: name,
- vectorOfInventory: inventoryOffset,
+ nameOffset: name,
+ inventoryVectorOffset: inventoryOffset,
color: .red,
- vectorOfWeapons: weaponsOffset,
+ weaponsVectorOffset: weaponsOffset,
equippedType: .weapon,
- offsetOfEquipped: axe)
+ equippedOffset: axe)
builder.finish(offset: orc)
let buf = builder.sizedByteArray
diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp
index 512711cdf..91f47ff2f 100644
--- a/src/idl_gen_swift.cpp
+++ b/src/idl_gen_swift.cpp
@@ -605,9 +605,10 @@ class SwiftGenerator : public BaseGenerator {
auto offset_type =
IsString(field.value.type) ? "Offset" : "Offset";
auto camel_case_name =
- (IsVector(field.value.type) || IsArray(field.value.type) ? "vectorOf"
- : "offsetOf") +
- MakeCamel(name, true);
+ MakeCamel(name, false) +
+ (IsVector(field.value.type) || IsArray(field.value.type)
+ ? "VectorOffset"
+ : "Offset");
create_func_header.push_back(camel_case_name + " " + name + ": " +
offset_type + " = Offset()");
auto reader_type =
diff --git a/tests/FlatBuffers.GRPC.Swift/Sources/Model/greeter_generated.swift b/tests/FlatBuffers.GRPC.Swift/Sources/Model/greeter_generated.swift
index 07af658a3..11664f5e2 100644
--- a/tests/FlatBuffers.GRPC.Swift/Sources/Model/greeter_generated.swift
+++ b/tests/FlatBuffers.GRPC.Swift/Sources/Model/greeter_generated.swift
@@ -28,7 +28,7 @@ public struct HelloReply: FlatBufferObject {
public static func endHelloReply(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end }
public static func createHelloReply(
_ fbb: inout FlatBufferBuilder,
- offsetOfMessage message: Offset = Offset()
+ messageOffset message: Offset = Offset()
) -> Offset {
let __start = HelloReply.startHelloReply(&fbb)
HelloReply.add(message: message, &fbb)
@@ -60,7 +60,7 @@ public struct HelloRequest: FlatBufferObject {
public static func endHelloRequest(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end }
public static func createHelloRequest(
_ fbb: inout FlatBufferBuilder,
- offsetOfName name: Offset = Offset()
+ nameOffset name: Offset = Offset()
) -> Offset {
let __start = HelloRequest.startHelloRequest(&fbb)
HelloRequest.add(name: name, &fbb)
@@ -95,7 +95,7 @@ public struct ManyHellosRequest: FlatBufferObject {
public static func endManyHellosRequest(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end }
public static func createManyHellosRequest(
_ fbb: inout FlatBufferBuilder,
- offsetOfName name: Offset = Offset(),
+ nameOffset name: Offset = Offset(),
numGreetings: Int32 = 0
) -> Offset {
let __start = ManyHellosRequest.startManyHellosRequest(&fbb)
diff --git a/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersMonsterWriterTests.swift b/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersMonsterWriterTests.swift
index 702b0d9d6..c4a65bff1 100644
--- a/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersMonsterWriterTests.swift
+++ b/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersMonsterWriterTests.swift
@@ -104,7 +104,7 @@ class FlatBuffersMonsterWriterTests: XCTestCase {
var fbb = FlatBufferBuilder(initialSize: 1)
let name = fbb.create(string: "Frodo")
let bools = fbb.createVector(boolArray)
- let root = Monster.createMonster(&fbb, offsetOfName: name, vectorOfTestarrayofbools: bools)
+ let root = Monster.createMonster(&fbb, nameOffset: name, testarrayofboolsVectorOffset: bools)
fbb.finish(offset: root)
let monster = Monster.getRootAsMonster(bb: fbb.sizedBuffer)
diff --git a/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersUnionTests.swift b/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersUnionTests.swift
index 608a07cde..fa9e1e514 100644
--- a/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersUnionTests.swift
+++ b/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersUnionTests.swift
@@ -107,7 +107,10 @@ final class FlatBuffersUnionTests: XCTestCase {
]
let types = fb.createVector(characterType)
let characterVector = fb.createVector(ofOffsets: characters)
- let end = Movie.createMovie(&fb, vectorOfCharactersType: types, vectorOfCharacters: characterVector)
+ let end = Movie.createMovie(
+ &fb,
+ charactersTypeVectorOffset: types,
+ charactersVectorOffset: characterVector)
Movie.finish(&fb, end: end)
var movie = Movie.getRootAsMovie(bb: fb.buffer)
diff --git a/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift
index b4ec29a84..fff3ce07f 100644
--- a/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift
+++ b/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift
@@ -514,7 +514,7 @@ public struct MyGame_Example_Stat: FlatBufferObject, ObjectAPIPacker {
public static func endStat(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end }
public static func createStat(
_ fbb: inout FlatBufferBuilder,
- offsetOfId id: Offset = Offset(),
+ idOffset id: Offset = Offset(),
val: Int64 = 0,
count: UInt16 = 0
) -> Offset {
@@ -936,17 +936,17 @@ public struct MyGame_Example_Monster: FlatBufferObject, ObjectAPIPacker {
pos: MyGame_Example_Vec3? = nil,
mana: Int16 = 150,
hp: Int16 = 100,
- offsetOfName name: Offset = Offset(),
- vectorOfInventory inventory: Offset = Offset(),
+ nameOffset name: Offset = Offset(),
+ inventoryVectorOffset inventory: Offset = Offset(),
color: MyGame_Example_Color = .blue,
testType: MyGame_Example_Any_ = .none_,
- offsetOfTest test: Offset = Offset(),
- vectorOfTest4 test4: Offset = Offset(),
- vectorOfTestarrayofstring testarrayofstring: Offset = Offset(),
- vectorOfTestarrayoftables testarrayoftables: Offset = Offset(),
- offsetOfEnemy enemy: Offset = Offset(),
- vectorOfTestnestedflatbuffer testnestedflatbuffer: Offset = Offset(),
- offsetOfTestempty testempty: Offset = Offset(),
+ testOffset test: Offset = Offset(),
+ test4VectorOffset test4: Offset = Offset(),
+ testarrayofstringVectorOffset testarrayofstring: Offset = Offset(),
+ testarrayoftablesVectorOffset testarrayoftables: Offset = Offset(),
+ enemyOffset enemy: Offset = Offset(),
+ testnestedflatbufferVectorOffset testnestedflatbuffer: Offset = Offset(),
+ testemptyOffset testempty: Offset = Offset(),
testbool: Bool = false,
testhashs32Fnv1: Int32 = 0,
testhashu32Fnv1: UInt32 = 0,
@@ -956,33 +956,33 @@ public struct MyGame_Example_Monster: FlatBufferObject, ObjectAPIPacker {
testhashu32Fnv1a: UInt32 = 0,
testhashs64Fnv1a: Int64 = 0,
testhashu64Fnv1a: UInt64 = 0,
- vectorOfTestarrayofbools testarrayofbools: Offset = Offset(),
+ testarrayofboolsVectorOffset testarrayofbools: Offset = Offset(),
testf: Float32 = 3.14159,
testf2: Float32 = 3.0,
testf3: Float32 = 0.0,
- vectorOfTestarrayofstring2 testarrayofstring2: Offset = Offset(),
- vectorOfTestarrayofsortedstruct testarrayofsortedstruct: Offset = Offset(),
- vectorOfFlex flex: Offset = Offset(),
- vectorOfTest5 test5: Offset = Offset(),
- vectorOfVectorOfLongs vectorOfLongs: Offset = Offset(),
- vectorOfVectorOfDoubles vectorOfDoubles: Offset = Offset(),
- offsetOfParentNamespaceTest parentNamespaceTest: Offset = Offset(),
- vectorOfVectorOfReferrables vectorOfReferrables: Offset = Offset(),
+ testarrayofstring2VectorOffset testarrayofstring2: Offset = Offset(),
+ testarrayofsortedstructVectorOffset testarrayofsortedstruct: Offset = Offset(),
+ flexVectorOffset flex: Offset = Offset(),
+ test5VectorOffset test5: Offset = Offset(),
+ vectorOfLongsVectorOffset vectorOfLongs: Offset = Offset(),
+ vectorOfDoublesVectorOffset vectorOfDoubles: Offset = Offset(),
+ parentNamespaceTestOffset parentNamespaceTest: Offset = Offset(),
+ vectorOfReferrablesVectorOffset vectorOfReferrables: Offset = Offset(),
singleWeakReference: UInt64 = 0,
- vectorOfVectorOfWeakReferences vectorOfWeakReferences: Offset = Offset(),
- vectorOfVectorOfStrongReferrables vectorOfStrongReferrables: Offset = Offset(),
+ vectorOfWeakReferencesVectorOffset vectorOfWeakReferences: Offset = Offset(),
+ vectorOfStrongReferrablesVectorOffset vectorOfStrongReferrables: Offset = Offset(),
coOwningReference: UInt64 = 0,
- vectorOfVectorOfCoOwningReferences vectorOfCoOwningReferences: Offset = Offset(),
+ vectorOfCoOwningReferencesVectorOffset vectorOfCoOwningReferences: Offset = Offset(),
nonOwningReference: UInt64 = 0,
- vectorOfVectorOfNonOwningReferences vectorOfNonOwningReferences: Offset = Offset(),
+ vectorOfNonOwningReferencesVectorOffset vectorOfNonOwningReferences: Offset = Offset(),
anyUniqueType: MyGame_Example_AnyUniqueAliases = .none_,
- offsetOfAnyUnique anyUnique: Offset = Offset(),
+ anyUniqueOffset anyUnique: Offset = Offset(),
anyAmbiguousType: MyGame_Example_AnyAmbiguousAliases = .none_,
- offsetOfAnyAmbiguous anyAmbiguous: Offset = Offset(),
- vectorOfVectorOfEnums vectorOfEnums: Offset = Offset(),
+ anyAmbiguousOffset anyAmbiguous: Offset = Offset(),
+ vectorOfEnumsVectorOffset vectorOfEnums: Offset = Offset(),
signedEnum: MyGame_Example_Race = .none_,
- vectorOfTestrequirednestedflatbuffer testrequirednestedflatbuffer: Offset = Offset(),
- vectorOfScalarKeySortedTables scalarKeySortedTables: Offset = Offset()
+ testrequirednestedflatbufferVectorOffset testrequirednestedflatbuffer: Offset = Offset(),
+ scalarKeySortedTablesVectorOffset scalarKeySortedTables: Offset = Offset()
) -> Offset {
let __start = MyGame_Example_Monster.startMonster(&fbb)
MyGame_Example_Monster.add(pos: pos, &fbb)
@@ -1528,8 +1528,8 @@ public struct MyGame_Example_TypeAliases: FlatBufferObject, ObjectAPIPacker {
u64: UInt64 = 0,
f32: Float32 = 0.0,
f64: Double = 0.0,
- vectorOfV8 v8: Offset = Offset(),
- vectorOfVf64 vf64: Offset = Offset()
+ v8VectorOffset v8: Offset = Offset(),
+ vf64VectorOffset vf64: Offset = Offset()
) -> Offset {
let __start = MyGame_Example_TypeAliases.startTypeAliases(&fbb)
MyGame_Example_TypeAliases.add(i8: i8, &fbb)
diff --git a/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift
index ecab3871f..12b67f12f 100644
--- a/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift
+++ b/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift
@@ -42,10 +42,10 @@ public struct MoreDefaults: FlatBufferObject, ObjectAPIPacker {
public static func endMoreDefaults(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end }
public static func createMoreDefaults(
_ fbb: inout FlatBufferBuilder,
- vectorOfInts ints: Offset = Offset(),
- vectorOfFloats floats: Offset = Offset(),
- offsetOfEmptyString emptyString: Offset = Offset(),
- offsetOfSomeString someString: Offset = Offset()
+ intsVectorOffset ints: Offset = Offset(),
+ floatsVectorOffset floats: Offset = Offset(),
+ emptyStringOffset emptyString: Offset = Offset(),
+ someStringOffset someString: Offset = Offset()
) -> Offset {
let __start = MoreDefaults.startMoreDefaults(&fbb)
MoreDefaults.addVectorOf(ints: ints, &fbb)
diff --git a/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift
index c042744a1..b1c937676 100644
--- a/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift
+++ b/tests/FlatBuffers.Test.Swift/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift
@@ -237,9 +237,9 @@ public struct Movie: FlatBufferObject, ObjectAPIPacker {
public static func createMovie(
_ fbb: inout FlatBufferBuilder,
mainCharacterType: Character = .none_,
- offsetOfMainCharacter mainCharacter: Offset = Offset(),
- vectorOfCharactersType charactersType: Offset = Offset(),
- vectorOfCharacters characters: Offset = Offset()
+ mainCharacterOffset mainCharacter: Offset = Offset(),
+ charactersTypeVectorOffset charactersType: Offset = Offset(),
+ charactersVectorOffset characters: Offset = Offset()
) -> Offset {
let __start = Movie.startMovie(&fbb)
Movie.add(mainCharacterType: mainCharacterType, &fbb)