-
Notifications
You must be signed in to change notification settings - Fork 137
Features
Alexey Khokhlov edited this page Apr 2, 2015
·
1 revision
##Compile ".proto" files.
protoc person.proto --swift_out="./"
##Serializing
message Person {
required int32 id = 1;
required string name = 2;
optional string email = 3;
}
let personBuilder = Person.builder()
personBuilder.id = 123
personBuilder.name = "Bob"
personBuilder.email = "[email protected]"
let person = personBuilder.build()
println("\(person)")
person.data() //return NSData
##Chaining
message Perfomance
{
required int32 ints = 1;
required int64 ints64 = 2;
required double doubles = 3;
required float floats = 4;
optional string str = 5;
optional bytes bytes = 6;
optional string description = 7;
}
var originalBuilder = ProtoPerfomance.builder()
originalBuilder.setInts(Int32(32))
.setInts64(Int64(64))
.setDoubles(Double(12.12))
.setFloats(Float(123.123))
.setStr("string")
let original = originalBuilder.build()
##Deserializing
var person = Person.parseFromData(bytes) // from NSData
##Using Oneof
message SubMessage {
optional string str = 1;
}
message SampleMessage {
oneof test_oneof {
string name = 4;
int32 id = 5;
SubMessage mes = 6;
}
}
var sm = SampleMessage.builder()
sm.name = "Alex"
sm.id = 123
println(ss.build()) //-> id: 123
##Nested Types
message SearchResponse {
message Result {
required string url = 1;
optional string title = 2;
repeated string snippets = 3;
}
repeated Result result = 1;
}
var builderResult = SearchResponse.Result.builder()
builderResult.url = "http://protobuf.axo.io"
builderResult.title = "Protocol Bufers Apple Swift"
var searchRespons = SearchResponse.builder()
searchRespons.result += [builderResult.build()]
println(searchRespons.build())
##Packages
package FooBar;
message Perfomance
{
required int32 ints = 1;
required int64 ints64 = 2;
required double doubles = 3;
required float floats = 4;
optional string str = 5;
optional bytes bytes = 6;
optional string description = 7;
}
public extension FooBar {
...
final public class Perfomance : GeneratedMessage, GeneratedMessageProtocol {
...
}
}